首页 > 代码库 > QuickSort 模板
QuickSort 模板
1 #include<stdio.h> 2 int num[100]; 3 4 void quicksort(int left,int right) 5 { 6 int i,j,t,temp; 7 if(left>right) return; 8 9 temp=num[left]; // temp用来存放基准值 10 i=left; 11 j=right; 12 while(i!=j) 13 { 14 while(num[j]>=temp&&i<j) 15 j--; // 哨兵j从右往左找一个比基准数小的数 16 while(num[i]<=temp&&i<j) 17 i++; // 哨兵i从左往右找一个比基准数大的数 18 19 // 交换他们 20 if(i<j) 21 { 22 t=num[i]; 23 num[i]=num[j]; 24 num[j]=t; 25 } 26 } 27 // 将基准数与i,j哨兵碰头的数交换 28 num[left]=num[i]; 29 num[i]=temp; 30 // 将基准数左边和右边的数列再进行排序 31 quicksort(left,i-1); 32 quicksort(i+1,right); 33 return ; 34 } 35 int main(void) 36 { 37 int i,j,n; 38 scanf("%d",&n); 39 for(i=1;i<=n;i++) 40 scanf("%d",&num[i]); 41 42 quicksort(1,n); 43 44 for(i=1;i<=n;i++) 45 printf("%d ",num[i]); 46 47 return 0; 48 }
QuickSort 模板
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。