选择排序:第一趟从n个元素的数据序列中选出关键字最小/大的元素并放在最前/后位置,下一趟从n-1个元素中选出最小/大的元素并放在最前/后位置。以此类推,经过n-1趟完成排序。
//选择排序
public class SelectSort {
public static void main(String[] args) {
int array[] = {10,9,4,5,1,8,0};
selectSort(array);
// System.out.println(Arrays.toString(array));
}
public static void selectSort(int array[]) {
for (int i = 0;i<array.length;i++){
int min = array[i];
int minIndex = i;
for(int j = i+1;j< array.length;j++){
if(min>array[j]){
min = array[j];
minIndex = j;
}
}
array[minIndex] = array[i];
array[i] = min;
System.out.println("第"+ (i+1)+"次排序后的结果为:");
System.out.println(Arrays.toString(array));
}
}
}
简化,代码看着简单,但是比前面一个多运行一次
public class SelectSort1 {
public static void main(String[] args) {
int array[] = {10,9,4,5,1,8,9,0};
selectSort(array);
System.out.println(Arrays.toString(array));
}
public static void selectSort(int array[]) {
for(int i = 0;i<array.length;i++){
for(int j=i+1;j<array.length;j++)
{
if(array[i]>array[j])
{
int temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
}
}