首页 > 代码库 > 快速排序
快速排序
1 #include<stdio.h> 2 //quickSort 3 int partition(int a[],int start,int end) { 4 int node = a[start]; //初始节点 5 while(start<end) { //结束条件 6 while(a[end] >= node && end > start) //从右往左走 7 end--; 8 if(end>start) 9 a[start] = a[end]; 10 while(a[start] <= node && start < end) //从左往右走 11 start++; 12 if(start < end) { 13 a[end] = a[start]; 14 } 15 } 16 a[start]=node; 17 return start; 18 } 19 20 void quickSort(int a[],int start,int end) { 21 if(start >= end) return; 22 int i = 0,j = 0; 23 int pos = partition(a,start,end); 24 if(pos-1 > start) 25 quickSort(a,start,pos-1); 26 if(end > pos+1) 27 quickSort(a,pos+1,end); 28 29 } 30 31 void display(int a[],int len) { 32 int i=0; 33 for(i=0;i<len;i++) { 34 printf("%d ",a[i]); 35 } 36 printf("\n"); 37 } 38 39 void main() { 40 int a[10] = {2,3,1,4,5,6,7,2,9,0}; 41 int nums = 10; 42 quickSort(a,0,nums-1); 43 display(a,nums); 44 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。