快速排序
来源:互联网 发布:poc软件对讲 编辑:程序博客网 时间:2024/06/05 08:31
看来好几个版本关于快速排序的描述,最终选择了《算法导论》里给出的一个算法,感觉这个特别容易理解和记忆。
原算法如下:
QUICKSORT(A,p,r)1 if p<r2 then q ←PARTITION(A,p,r)3 QUICKSORT(A,p,q-1)4 QUICKSORT(A,q+1,r) PARTITION(A,p,r)1 x ←A[r]2 i ←p-13 for j←p to r-14 do if A[i]<=x5 then i←i+16 exchange A[i]←→A[j];7 exchange A[i+1]←→A[r]8 return i+1
使用C++实现的代码实现如下所示:
#include <iostream>using namespace std;int partion(int a[],int p,int r){int i = p-1;int tem = a[r];int j = p;for(j;j<=r-1;j++){if(a[j]<=tem){i = i+1;int temp = a[i];a[i]=a[j];a[j]=temp;}}a[r]=a[i+1];a[i+1]= tem;return i+1;}void QuickSort(int a[],int p,int r){if (p<r){int q=partion(a,p,r);QuickSort(a,p,q-1);QuickSort(a,q+1,r);}}int main(){int array[]={4,5,7,2,1,9,3,6};QuickSort(array,0,7);cout<<"start"<<endl;for(int i=0;i<=7;i++)cout<<array[i]<<" ";cout<<endl;return 0;}
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- Hadoop_异常记录
- “黑马程序员”宣传语有奖大征集
- 如何查看自己生成的tracle文件
- 采用nptl库编译程序
- C++构造函数、析构函数中的异常
- 快速排序
- Java中IO总结
- 一个很简单的问题,曾经不知道,现在明白了
- C++类的对象空间
- 50-简单的竖直排列的菜单
- 将CFormView嵌入到CDockablePane中
- 香港电子展 观后感
- winpcap调用pcap_findalldevs()不能获取网卡列表的问题~~解决啦~~
- cocos2dx编辑器cocostudio与cocosbuilder异同