選擇排序原理:
每次選定乙個位置的數,依此和後續位置的數比較,如果選定的數大於後面的數,則交換
第一次選擇出最小值,第二次從第二個位置開始比
共比較n-1輪,每輪比較n-i-1次
int a = new int;
for(int times = 0; times < a.length-1; times++)
}}
上述**在在一輪比較中可能會交換多次,如第一輪比較時,首先4>2,則將二者交換,此時a[times] = 2,再比較2>1,再進行交換使得a[times] = 1,這裡需交換2次
改進之,思路:在一輪比較中,每次比較只記錄目前為止最小值的索引,直到本輪比較完成,最終的索引即為本輪最小值的索引,此時再進行交換,確保每輪只交換一次。
int a = new int;
for(int times = 0; times < a.length-1; times++)
}int tmp = a[times];
a[times] = a[minindex];
a[minindex] = tmp;
}
Java 選擇排序
public static void selectsort int a int n a.length int minindex 0 從無序區中選乙個最小的數放在有序區的最後,初始時認為整個陣列都是無序的,選乙個最小的數放到第一位 for int i 0 i 直接選擇排序和插入排序類似,都將資料分為有...
Java 選擇排序
package com.vgbh public class selectsorting 第一趟,從n個元素中找出關鍵字最小的元素與第乙個元素交換 第二趟,在從第二個元素開始的n 1個元素中再選出關鍵字最小的元素與第二個元素交換 如此,第k趟,則從第k個元素開始的n k 1個元素中選出關鍵字最小的元素...
java選擇排序
選擇排序演算法的原理 每次找出最小的乙個數放到陣列的最左邊,然後從剩餘的陣列中繼續找出最小的數放到剩餘陣列的最左邊package com.sort public class selectionsort return arr param start 剩餘部分陣列 開始部分 param arr 陣列 r...