排序系列之快速排序
2014-01-20 12:43
239 查看
快排作为一种不稳定的排序方法,基于了分治的思想,其主要过程是:以一个种子seed为基点,把原序列分割为两部分的子序列,进而以分治的思想对子序列进行操作。
void quickSort(int array[],int start,int end)
{
if(start>end)
return;
int seed=array[start];
int i=start;
int j=end;
bool flag=0;
for(;;)
{
if(i==j)
{
array[i]=seed;
break;
}
if(flag==0)
{
if(array[j]<seed)
{
array[i]=array[j];
i++;
flag=1;
continue;
}
else
j--;
}
if(flag==1)
{
if(array[i]>seed)
{
array[j]=array[i];
j--;
flag=0;
continue;
}
else
i++;
}
}
quickSort(array,start,i-1);
quickSort(array,i+1,end);
}
void quickSort(int array[],int start,int end)
{
if(start>end)
return;
int seed=array[start];
int i=start;
int j=end;
bool flag=0;
for(;;)
{
if(i==j)
{
array[i]=seed;
break;
}
if(flag==0)
{
if(array[j]<seed)
{
array[i]=array[j];
i++;
flag=1;
continue;
}
else
j--;
}
if(flag==1)
{
if(array[i]>seed)
{
array[j]=array[i];
j--;
flag=0;
continue;
}
else
i++;
}
}
quickSort(array,start,i-1);
quickSort(array,i+1,end);
}
相关文章推荐
- 白话讲排序系列(三) 快速排序
- 数据结构和算法系列5 七大排序之冒泡排序和快速排序
- 排序系列之快速排序
- 傻瓜学算法系列之排序——5.快速排序
- 排序系列--快速排序(实现+复杂度分析)
- 排序系列之快速排序和归并排序
- 数据结构和算法系列5 七大排序之冒泡排序和快速排序
- 算法熟记-排序系列-快速排序
- 排序系列-快速排序
- 排序系列之(3)快速排序及C语言实现
- 每天学习算法系列—内部排序之归并排序和快速排序
- 数据结构与算法系列之一:八大排序之快速排序
- 排序系列之快速排序
- 算法之排序-----排序第一篇 快速排序
- 白话经典算法系列之六 快速排序 快速搞定
- 排序系列之(1)归并排序及C语言实现
- 排序算法总结---交换排序之快速排序
- 白话经典算法系列之六 快速排序 快速搞定
- 白话经典算法系列之五 归并排序的实现
- 排序系列之(4)希尔排序及C语言实现