首页 > 代码库 > 快速排序之算法导论实现
快速排序之算法导论实现
#include <iostream> using namespace std; int partition(int *a,int p,int r) { int x=a[r]; int i=p-1;//note i important which is used for //storage the number smaller than flag x=a[r] for (int j=p;j<r;j++) { if (a[j]<x)// if a[j] smaller than x=a[r], //exchange a[i+1] and a[j] { i++; int t=a[j]; a[j]=a[i]; a[i]=t; } } int t=a[i+1];// i+1 is the a[r] final position // exchange a[r] and a[i+1] a[i+1]=a[r]; a[r]=t; return i+1; //return the a[r] final position i+1 } void quicksort(int *a,int p,int r) { if (p<r)//the position lower than the higher { int q=partition(a,p,r);//q is the a[r] final position // depart the arry[p...q-1] and arry[q+1...r] quicksort(a,p,q-1); quicksort(a,q+1,r); } } int main() { int arry[]={3,2,1,4,5,6,9,8,7,0}; quicksort(arry,0,9); for (int i=0;i<10;i++) cout<<arry[i]<<" "; cout<<endl; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。