簡單選擇排序

2021-06-25 21:14:57 字數 768 閱讀 7261

/*

直接選擇排序,排序思路:每一次排序從無序集合中選取乙個最小的元素和無序序列中第乙個元素

交換,這樣有序集合中加一,無序集合中減一,知道無序集合為空,排序結束。用數學的描述是:

初始序列為r[0...n],有序集合為空,無序集合為r[0...n],第一趟排序從無需集合中選取乙個最小

的元素與r[0]交換,第i趟排序有序集合為r[0...i-1],從無序集合r[i...n]中取出最小的和r[i-1]交換。

先說穩定性:直接選擇排序時不穩定排序,原因是:看例子比較好說明12,5,43,12*,2,54,8第一趟排序

後2,5,43,12*,12,54,8,可以看出12和12*的相對順序改變了。

再說時間複雜度,本質上說直接選擇排序還是通過與其他所有的元素做比較並且重複o(n)次的排序,所以時間

複雜度難逃o(n^2)的命運

這直接插入排序和氣泡排序相比,直接選擇排序的優點在於就地排序,也就是說直接選擇排序並不在比較的過程

中交換元素的位置,而是在每一趟的結束交換。

*/public class selectsort;

int i,j;

for(i=0;ij++;

}a[temp] = a[i];

a[i] = count;

system.out.print("第"+(i+1)+"趟排序:");

for(int k=0;ksystem.out.println("");

} }//main

}

簡單選擇排序 簡單選擇排序詳解

n個記錄的檔案的直接選擇排序可經過n 1趟直接選擇排序得到有序結果 初始狀態 無序區為r 1.n 有序區為空。第1趟排序 在無序區r 1.n 中選出關鍵字最小的記錄r k 將它與無序區的第1個記錄r 1 交換,使r 1.1 和r 2.n 分別變為記錄個數增加1個的新有序區和記錄個數減少1個的新無序區...

選擇排序 簡單選擇排序

在要排序的一組數中,選出最小 或者最大 的乙個數與第1個位置的數交換 然後在剩下的數當中再找最小 或者最大 的與第2個位置的數交換,依次類推,直到第n 1個元素 倒數第二個數 和第n個元素 最後乙個數 比較為止。第一趟,從n個記錄中找出關鍵碼最小的記錄與第乙個記錄交換 第二趟,從第二個記錄開始的n ...

選擇排序 簡單選擇排序

1.選擇排序 簡單選擇排序,堆排序 與交換排序 氣泡排序,快速排序 的區別 每次比較如果發現較小的元素在後面,就交換兩個相鄰的元素。而選擇排序演算法的改進在於 先並不急於調換位置,先從a 1 開始逐個檢查,看哪個數最小就記下該數所在的位置p,等一躺掃瞄完畢,再把a p 和a 1 對調,這時a 1 到...