quick sort

  1 #include <stdio.h>
  2 
  3 int partition(int a[],int low,int high)
  4 {
  5         int pivotkey = a[low];
  6         a[0] = a[low];
  7         while( low < high)
  8         {
  9                 while(low < high && a[high] >= pivotkey)
 10                         --high;
 11                 a[low] = a[high];
 12                 while(low < high && a[low] <= pivotkey)
 13                         ++low;
 14                 a[high] = a[low];
 15         }
 16         a[low] = a[0];
 17         return low;
 18 }
 19 
 20 void qsort(int a[],int low,int high)
 21 {
 22         int pivotkey;
 23         if(low < high){
 24                 pivotkey = partition(a,low,high);
 25                 qsort(a,low,pivotkey - 1);
 26                 qsort(a,pivotkey + 1,high);
 27         }
 28 }
 29 
 30 void main()
 31 {
 32         int i;
 33         int a[10] = {0,6,5,4,23,54,12,56,87,10};
 34         qsort(a,1,9);
 35         for(i = 1;i<=9;i++)
 36                 printf("%3d",a[i]);
 37         printf("\n");
 38 }

posted on 2012-05-28 21:26 三少_爷 阅读(109) 评论(0)  编辑 收藏 引用 所属分类: the c programming language


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿

随笔分类

随笔档案

My Website

搜索

最新评论

阅读排行榜

评论排行榜