簡體   English   中英

JAVA中的這種排序叫什么?

[英]What do you call this kind of sorting in JAVA?

希望你們今天過得愉快!

我是 Java 的新手,所以我仍然掌握它的竅門。

有一種我經常使用的排序算法

for(int i=0; i<array.length; i++){
    for(int j=i; j<array.length; j++){
        if(array[j] < array[i]){
            int temp = array[i];
            array[i] = array[j];
            array[j] = temp;
        }
    }
}

說明:外循環首先使用數組的第一個元素,並開始將其與列表中元素的 rest 進行比較,如果它大於其中一個元素,則交換它。

例如,我們得到一個數組 12, 5, 14, 8, 3

我們有 array[0] 為 12。將其與內部循環中的 array[1] 進行比較,因為 5<12 我們交換它們。 內部循環一直持續到 array[4],其中 array[4] < array[0] 現在我們有 3 作為數組中正確位置的最小元素

沖洗並重復元素 rest

這種排序是什么? 因為它似乎不適合選擇排序或插入排序,更不用說冒泡排序了。

感謝您的幫助!

這絕對是一種選擇,因為最后您將在開頭附近交換一個較高的數字,而在遠處交換一個較小的數字。 大多數情況下,如果排序方法的結尾處​​有交換,則它會被選中。

這是一種冒泡排序 冒泡排序會將array[j-1]array[j]進行比較,而不是將array[i]array[j]進行比較,但總體效果是相似的:該算法同時將所有較大的元素向右移動,而冒泡排序依次向右移動每個元素,直到遇到更大的元素。

不是選擇排序,它從索引 0 開始,找到從索引開始的最小元素,然后將其與索引處的元素交換,然后遞增索引並為所有索引重復。

您的代碼是此偽代碼的簡化和未優化版本的 java 實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM