實現**:
public
class
selection
;
system
.out
.println
("排序之前:"
);
for(
inti =0
;i length;i
++)
// //簡單的選擇排序
// for (int i = 0; i < a.length; i++)
// }
// a[n] = a[i];
// a[i] = min;
//
// }
// system.out.println();
// system.out.println("排序之後:");
// for (int i = 0; i < a.length; i++)
intn =a
.length
;
for(
inti =0
;i i++)
exch(a
,i,min
);
}
system
.out
.println
();
system
.out
.println
("排序之後:"
);
for(
inti =0
;i length;i
++)
}
@suppresswarnings
()
private
static
boolean less
(comparablev,
comparable
m)
@suppresswarnings
()
private
static
void
exch
(comparable
a,inti
,int
j)
}
排序之前:
49
3865
9776
1327
4978
3412641
8
排序之後:
1812
1327
3438
4949
6465
7678
97
演算法分析:
對於長度為n的陣列,選擇排序需要大約n^2/2次比較和n次交換。
特點:執行時間和輸入沒有關係。(對於乙個有序的陣列或主鍵全部相等的陣列或元素隨機排列的陣列所用的排序時間一樣長)。
資料移動是最少的。交換次數和陣列的大小是線性關係。
簡單選擇排序是不穩定的排序。
時間複雜度:t(n)=o(n2)。
Java學習 選擇排序1 直接選擇排序
選擇排序 思想 每趟從待排序的記錄序列中選擇關鍵字最小的記錄放置到已排序表的最前位置,直到全部排完。關鍵問題 在剩餘的待排序記錄序列中找到最小關鍵碼記錄。1.直接選擇排序 1 基本思想 在要排序的一組數中,選出最小的乙個數與第一位置的數交換 然後從第二個位置開始,在剩下的數當中與第二個位置的數交換,...
java之選擇排序的簡單學習
選擇排序 以下標為0的開始,與後面的資料一一比較,遇到較小的資料,則進行數值位置交換,外迴圈一輪結束,最小的數值已在最前面。如下 public static void selectionsort int array system.out.println arrays.tostring array 選...
Java 選擇排序
public static void selectsort int a int n a.length int minindex 0 從無序區中選乙個最小的數放在有序區的最後,初始時認為整個陣列都是無序的,選乙個最小的數放到第一位 for int i 0 i 直接選擇排序和插入排序類似,都將資料分為有...