选择排序
int selectionSort(int argv[], int size) // 选择排序
{
int time = 0; // 计算比较次数
for (int i = 0; i < size; i++)
{
int minIndex = i;
for (int j = i+1; j < size; j++)
{
++time;
if (argv[j] < argv[minIndex])
{
minIndex = j;
}
}
if (minIndex != i)
{
int temp = argv[i];
argv[i] = argv[minIndex];
argv[minIndex] = temp;
}
}
return time;
}
快速排序
int QuickSort(int argv[], int low, int high)
{
static int time = 0; // 计算调用次数
++time;
if(low>=high) // 比较到中间结束
return time;
int l = low;
int h = high;
int k = argv[low]; // 以数组开头做为k,
while(l != h) // 作用把小于k的数放在k左边,大于k的数放在k的右边。
{
while(l < h && argv[h] >= k) // 从后high开始往前找到第一个小于k的下标记做h
{
h--;
}
argv[l] = argv[h]; // 把小的数放l的位置。argv[h]相当于变为空位(数据已经移走,但没有清除)
while(l