简单选择排序:
此方法比较简单,我们先可以观看演示算法,自己体会其中精妙之处。
我们发现:通过对比,找到一个较小的数字,把它标记一下,当全部对比完成,找出最小的数字,把这个数字移到最前面去,这个数字不动了。
接着再找剩余最小的数字,移到第二个位置。
第N次计较,把找出的最小数字和第N 个数字交换。
通过两层循环就可以实现:
package demo4;
import java.util.Arrays;
/**
* 简单选择排序
*
* 2019年2月12日
*/
public class SelectSort {
public static void main(String[] args) {
int[] arr = new int []{5,3,4,9,7,6,1,2};
System.out.println("排序前:"+Arrays.toString(arr));
selectSort(arr);
System.out.println("排序后:"+Arrays.toString(arr));
}
//简单选择排序
public static void selectSort(int[] arr){
//定义一个临时变量存储最小值
int temp = 0;
int num=0;
for(int i=0;i<arr.length;i++){
//临时变量存放最小值
temp= arr[i];
num=i;
for(int j=i;j<arr.length;j++){
if(temp>arr[j]){
temp=arr[j];
num =j;
}
}
//第几轮就和第第几个交换
int x;
x=arr[i];
arr[i] = temp;
arr[num]=x;
}
}
}