您的位置:首页 > 编程语言

选择排序、快速排序代码

2013-08-09 10:31 176 查看
选择排序

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐