1、算法实现:
import java.util.Arrays;
public class MySort {
private final static int length = 50000;
private static int[] array = new int[length];
public static void main(String[] args) {
getArray();
TimeCost timeCost = new TimeCost();
sort_insert();
long cost = timeCost.elapsedTime();
System.out.println(cost);
System.out.println(Arrays.toString(array));
}
/**
* 选择排序
*/
private static void select_sort(){
for (int i = 0; i < length-1; i++){
int minIndex = i;
for (int j = i+1; j < length; j++){
if (array[minIndex] > array[j]){
minIndex = j;
}
}
// 相同两数异或为0,与0异或为自身
array[i] = array[i] ^ array[minIndex];
array[minIndex] = array[i] ^ array[minIndex];
array[i] = array[i] ^ array[minIndex];
}
}
/**
* 初始化一个随机数组
*/
private static void getArray(){
int i = 0;
while (i < length){
array[i] = (int) (length * Math.random());
i++;
}
}
/**
* 记录时间开销
*/
static class TimeCost{
private final long start;
TimeCost(){
start = System.currentTimeMillis();
}
private long elapsedTime(){
long now = System.currentTimeMillis();
return (now - start) ;
}
}
}