码迷,mamicode.com
首页 > 编程语言 > 详细

快速排序算法

时间:2014-12-15 21:50:30      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:排序算法   快速排序算法   快排   

/* date:2014.12.14
快速排序思路:和冒泡排序相似,基于比较和交换来实现排序,改进后效率高了。
流程:1).首先设置一个分界值,通过该值将数组分成左右两部分,左边序列小于等于它,右边序列大于等于它;
            2).对于左边和右边的序列,分别执行(1)操作;
    3).重复(2),相当于递归,直到有序。
时间复杂度:最差O(n^2),平均O(nlogn).
空间复杂度:O(log2(n))-O(n).
是一种 不稳定 的排序算法.
*/
 
void QuickSort(int *arr,int left,int right)
{
int f,temp;
int ltemp,rtemp;


ltemp = left;
rtemp = right;
f=arr[(left + right)/2];
while (ltemp < rtemp)
{
while (arr[ltemp] < f)
{
++ ltemp;
}
while (f < arr[rtemp])
{
-- rtemp;
}
if (ltemp <= rtemp)
{
temp = arr[ltemp];
arr[ltemp] = arr[rtemp];
arr[rtemp] = temp;
++ ltemp;
-- rtemp;
}
}

if (ltemp == rtemp)
{
ltemp ++;
}
if (left < rtemp)
{
QuickSort(arr,left,ltemp - 1);
}
if (ltemp < right)
{
QuickSort(arr,rtemp + 1,right);
}

}

bubuko.com,布布扣

快速排序算法

标签:排序算法   快速排序算法   快排   

原文地址:http://blog.csdn.net/sdgtliuwei/article/details/41948671

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!