算法复习之快速排序

原创 2015年07月08日 21:29:56
#include<iostream>
void prin(int *list,int len)
{
    for(int i = 0 ;i< len ;++i)
       std::cout<<list[i]<<" "<<std::endl;
}
int partition_1(int *list,int low,int high) 
{
    int privot = list[low] ;//分割点
    while(low < high)
    {
        while( low < high && list[high] >= privot)//从high处寻找小于privot的值
            --high ;//未找到则移动到“下一个”元素
        if(low < high)//成功找到小于privot的值,则进行交换
            list[low++] = list[high] ;

        while(low < high && list[low] <= privot)//从low处寻找大于privot的值
            ++low ;//未找到则移动到下一个元素
        if(low < high)//成功找到大于privot的值,则进行交换
            list[high--]  = list[low] ;
    }
    list[low] = privot ;//插入值
    return low ;//
}
/************************************************************************/
/*快速排序 
* list 数组 ,low 第一元素的位置,high最后一个元素的位置
*/
/************************************************************************/
void quickSort(int *list,int low,int high)
{
    int pos ;
    if(low< high)
    {
        pos = partition_1(list,low,high) ;
        quickSort(list,low,pos-1) ;
        quickSort(list,pos+1,high) ;
    }
}
int main()
{
    int a[10] = {5,8,2,4,9,0,1,6,7,3} ;
    quickSort(a,0,sizeof(a)/sizeof(int)-1) ;
    prin(a,sizeof(a)/sizeof(int)) ;
    system("pause") ;
    return 0 ;
}

第一次
3 1 2 4 0 |5| 9 6 7 8   //5为分割点
第二次
0 1 2 |3|  4      8 6 7 |9  //3,9为分割点
第三次
0 |1 2            7 6 |8    //0,8为分割点
第四次
1| 2              6 | 7    //1 ,7为分割点
版权声明:本文为博主原创文章,未经博主允许不得转载。

算法复习(2) 快速排序

关于快速排序,一般都认为是通常情况下性能最好的,也确实是。因此对其的讨论都是在于如何能够使它更快。因此看一下快排的一般版本和随机版本。//一般版本 int Partition(int* arr, in...

算法复习--快速排序

快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的...
  • wolfant
  • wolfant
  • 2012年09月25日 22:03
  • 195

快速排序算法

  • 2015年05月01日 16:41
  • 1KB
  • 下载

快速排序C++算法

  • 2013年06月15日 10:19
  • 2KB
  • 下载

排序算法复习(Java实现)(一): 插入,冒泡,选择,快速排序

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->pa...

两张不同的快速排序算法

  • 2013年06月09日 18:47
  • 3KB
  • 下载

快速排序算法

  • 2013年10月27日 09:58
  • 5KB
  • 下载

快速排序--个人思路与书本思路 (复习排序算法)

快速排序的平均时间 #include #include #include using namespace std; int partition(int *A,int low,int ...

快速排序算法

  • 2013年08月04日 23:18
  • 2KB
  • 下载

快速排序算法C 源文件

  • 2014年08月07日 16:05
  • 1KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法复习之快速排序
举报原因:
原因补充:

(最多只允许输入30个字)