排序算法(交换排序)——快速排序

算法:

int QuickValue(int a[] ,int low, int high)
{
int key = a[low];
while(low < high){
while(low < high && a[high] >= key){
high--;
}
if (low != high)
{
//交换
int n1 = a[high];
a[high] = a[low];
a[low] = n1;
print(a,8,low);
}else if (low == high)
{
return low;
}
while(low < high && a[low] <= key){
low++;
}
if (low != high)
{
//交换
int nTemp = a[low];
a[low] = a[high];
a[high] = nTemp;
print (a,8,high);
}else if (low == high)
{
return low;
}
}
return low;
}
void QuickSort(int a[],int low, int high)
{
if (low < high)
{
int n = QuickValue(a ,low, high);
QuickSort(a,low,n);
QuickSort(a,n+1,high);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[8] = {32,13,54,73,28,46,91,65};
print(a,8,0);  //打印出初始值
//InsertSort(a,8); //直接插入排序算法
//ShellSort(a,8);   //希尔插入排序算法
//SelectSort(a,8);  //直接选择排序
//HeapSort(a,8);    //大顶堆排序
//BubbleSort(a,8);       //冒泡排序法
//BubbleSort2(a,8);      //正反双向冒泡排序法
QuickSort(a,0,7);  //快速排序

return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值