排序演算法 經典排序演算法之選擇排序

2021-06-21 07:49:52 字數 1081 閱讀 5551

演算法的基本思想,是從無序中選擇最小的元素,然後交換。

1、從陣列的第乙個元素開始,將待排序陣列分為有序和無序兩個區間。

2、從無序陣列中選取最小的元素和有序陣列的最後乙個元素交換。

3、重複第2步,直到無序陣列沒有元素為止。

時間複雜度為o(n*n),空間複雜度為o(1)。

選擇排序是給每個位置選擇當前元素最小的,比如給第乙個位置選擇最小的,在剩餘元素裡面給第二個元素選擇第二小的,依次類推,直到第n-1個元素,第n個元素不用選擇了,因為只剩下它乙個最大的元素了。那麼,在一趟選擇,如果乙個元素比當前元素小,而該小的元素又出現在乙個和當前元素相等的元素後面,那麼交換後穩定性就被破壞了。比較拗口,舉個例子,序列5 8 5 2 9,我們知道第一遍選擇第1個元素5會和2交換,那麼原序列中2個5的相對前後順序就被破壞了,所以選擇排序不是乙個穩定的排序演算法。

以資料6,4,2,5,3,7,1為例,排序結果為從小到大。

第0次排序:

,第1次排序:

, 第2次排序:

, 第3次排序:

, 第4次排序:

, 第5次排序:

,根據以上排序過程可以看到,只需要n-1次排序,所有元素就全部排好序了。

private static void selectsort(int array) 

} swap(array, i, temp);

i++;

}}

public class sort 

}swap(array, i, temp);

printf(array);

i++;

} }private static void swap(int array, int a, int b)

private static void printf(int array)

system.out.println();

} public static void main(string args) ;

selectsort(array);

printf(array);

}}

排序演算法 經典排序演算法之氣泡排序

氣泡排序很經典了,有人比喻過像是排序演算法中的hello world,很貼切。演算法的基本思想是每次都需要兩兩比較大小。氣泡排序演算法的過程如下 從前往後 1 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。2 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應...

排序演算法 經典排序演算法之快速排序

快速排序的基本思想是分治法,即按照範圍內的第乙個元素劃分為兩個部分,再歸併排序。整體排序的過程有點類似建立平衡二叉樹的過程。1 假設陣列長度為len,low 0,high len 1。以陣列low為標準,根據和首元素的大小關係將待排序陣列分為兩個部分,返回分組index。2 陣列被劃分為兩部分0到i...

排序演算法 經典的排序演算法總結

一 氣泡排序 1.氣泡排序的思想 對於乙個長度為n的陣列,從小到大進行排序。0 n 1範圍內,兩兩進行比較與交換,結果是最大的元素放在陣列的最後面 即n 1位上 0 n 2範圍內,兩兩進行比較與交換,結果是第二大元素放在最後面 即n 2位上 重複上述過程,直到範圍縮小到只有0位的乙個元素為止。2.例...