标签:sort
感觉《算法导论》上面的那个例子要更容易理解,因为那个最起码比较直观!
#include <stdio.h> int a[10]={2,8,5,7,4,3,1,9,6,10}; void QuickSort(int m, int n) { int s,begin,end; if(m>n) return; begin=m; end=n; s=a[m]; while(begin!=end) { while(a[end]>=s && begin<end) end--; while(a[begin]<=s && begin<end) begin++; if(begin<end) { a[begin]=a[begin]^a[end]; a[end]=a[begin]^a[end]; a[begin]=a[begin]^a[end]; } } a[m]=a[begin]; a[begin]=s; for(int t=0;t<10;t++) printf("%d ",a[t]); printf("\n"); QuickSort(m,begin-1); QuickSort(end+1,n); } int main() { int i; for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n排序后\n"); QuickSort(0,9); printf("\n最终结果\n"); for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); return 0; }
运行之后
本文出自 “hacker” 博客,请务必保留此出处http://anglecode.blog.51cto.com/5628271/1640408
标签:sort
原文地址:http://anglecode.blog.51cto.com/5628271/1640408