选择排序法:这里采用随机生成10个数,可通过直接修改length的值修改个数。
这里给出测量此方法的效率(大概),通过输出两次系统时间来对比。如果随机产生的数比较大时,有明显差别。(数比较大时,请注释掉打印,即代码中 “//依次打印排序后数组的每个元素” 下的循环)
/*
* 选择排序法
*/
import java.util.*;
public class SelectSortWay {
public static void main(String[] args) {
SelectSort ss = new SelectSort();
//产生length个随机数
int length = 10;
int arr[] = new int[length];
for(int i=0;i<arr.length;i++){
int t = (int) (Math.random()*1000);
arr[i] = t;
}
//输出此刻系统时间
Calendar ca = Calendar.getInstance();
System.out.println(ca.getTime());
ss.sort(arr);
//输出此刻系统时间
ca = Calendar.getInstance();
System.out.println(ca.getTime());
//依次打印排序后数组的每个元素
for(int i=0;i<arr.length;i++){
System.out.println(arr[i] + " ");
}
}
}
//选择排序法
class SelectSort{
public void sort(int arr[]){
int temp = 0;
for(int i=0;i<arr.length-1;i++){
int max = arr[i];
int maxIndex=i;
for(int j=i+1;j<arr.length;j++){
if(max > arr[j]){
max = arr[j];
maxIndex = j;
}
}
temp = arr[i];
arr[i] = arr[maxIndex];
arr[maxIndex] = temp;
}
}
}