(二)选择排序
实现代码:
/*!
* 选择排序
*/
double SelectionSort(int *data, int size)
{
double res = 0;
int tmp;
int K;
//EClock<> Ek;
for(int i=0; i<size-1; i++) {
K = i;
for(int j=i+1; j<size; j++) {
if(data[K] > data[j]) {
K = j;
}
}
if(K > i) {
tmp = data[K];
data[K] = data[i];
data[i] = tmp;
}
}
//res = Ek.microsecond();
return res;
}
测试结果:
单位:us
10 | 0.30186993 |
20 | 0.60373987 |
50 | 2.7168294 |
100 | 7.54674833 |
200 | 22.0365051 |
500 | 123.464803 |
1000 | 366.168229 |
2000 | 1866.15993 |
3000 | 3316.94683 |
4000 | 5123.63838 |
5000 | 7886.95575 |
6000 | 11210.2418 |
7000 | 15324.1253 |
8000 | 20239.7753 |
9000 | 30046.6238 |
10000 | 32286.8006 |
20000 | 132408.001 |
50000 | 813613.127 |
100000 | 3168371.58 |
200000 | 13138411.9 |
500000 | 79700194.9 |
800000 | 207013159 |
1000000 | 316162365 |