选择排序:
选择排序也是一种简单的排序方法。他的基本思想是:第一次从arr[0]arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[i]arr[n-1]中选取最小值与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值与arr[1]交换,通过n-1此,得到一个从小到大的排列。
测试八万个数据进行排序,所需要的时间大致为2.5~3秒,相较于冒泡排序,时间降低很多。
代码如下:
public static void selectSort(int[] arr){
int minIndex=arr[0];//不能设置为0,防止出现数字内全部为负数的状况
int temp=0;//找到最小值时,其在数组内的索引
boolean flag=false;//设置一个标识符,如果找到了最小值,就进行交换,否则不交换
for (int i = 0; i < arr.length-1; i++) {
for (int j = i; j < arr.length; j++) {
if(minIndex>arr[j]){
flag=true;
minIndex=arr[j];
temp=j;
}
}
if(flag) {
arr[temp] = arr[i];
arr[i] =minIndex;
}
flag=false;
minIndex = arr[i + 1];
}
}