选择排序的思想:假设第一个数是最小的,然后从剩余的数中找最小的,若找到的数比假设的最小数还小,则交换这两个数;依次类推,将整个数组排序完成。n个数执行n-1次选择排序即可完成!
选择排序和冒泡排序的区别:
1.冒泡排序是比较相邻位置的两个数,而选择排序是按顺序比较,找最大值或者最小值;
2.冒泡排序每一轮比较后,位置不对都需要换位置,选择排序每一轮比较都只需要换一次位置;
3.冒泡排序是通过数去找位置,选择排序是给定位置去找数。
选择排序代码如下:
package DataStructures.sort;
import java.util.ArrayList;
public class selectSort {
public static void main(String[] args) {
int[] nums = {101,34,119,1,-1,90,123};
selectSorted(nums);
}
public static void selectSorted(int[] nums){
for( int i = 0; i < nums.length - 1; i++){
int min = nums[i+1];
int index = i+1;
for( int j = i+1; j < nums.length - 1; j++){
if( nums[j+1] < min ){
min = nums[j+1];
index = j+1;
}
}
if( min < nums[i] ){
int temp = nums[i];
nums[i] = min;
nums[index] = temp;
}
//输出每次排序的结果
System.out.println("第"+(i+1)+"次排序:");
for( int k = 0; k < nums.length; k++){
System.out.print(nums[k]+" ");
}
System.out.println();
}
}
}



