Chinaunix首页 | 论坛 | 博客
  • 博客访问: 593387
  • 博文数量: 136
  • 博客积分: 893
  • 博客等级: 中士
  • 技术积分: 1001
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-31 09:18
个人简介

生命可以终止,梦想不会!

文章分类

全部博文(136)

文章存档

2016年(4)

2015年(2)

2014年(5)

2013年(7)

2012年(118)

分类: C/C++

2012-04-05 20:50:03

今晚没事整理一个相比冒泡、选择比较快的排序方法,
现在分享给大家:
/****************************************/
// 折半排序法(较快的一种排序方法)
// 思想:先把最小值赋给一个变量val,
// 然后拿low与high相比较,如果h>l,则h往左
// 移;如h// l大于h时,把l赋给h,h继续往左移,h大于val时
// ,继续,小于时赋给l如此往下推。
/****************************************/
#include

int findsort(int * a, int low, int high)
{
 int val;
 val = a[low];
 while(low {
  while (lowval)
  {
   --high;
  }
  a[low]=a[high];
  while (low  {
   ++low;
  }
  a[high]=a[low];
 }
//这里high与low一定相等
 a[high] = val;
 
 return a[low];
}
int quitsort(int * a, int low, int high)
{
 int pos;
 if(low {
  pos = findsort(a, low, high);
  quitsort(a, low, pos-1);
  quitsort(a, pos+1, high);  
 }
 
 return 0;
}
int main()
{
 int a[6]={2,4,7,19,4,-1};
 int i;
 quitsort(a,0,6);
 for(i=0;i<6;i++)
 {
  printf("%d ",a[i]);
 }
 
 return 0;
}
阅读(1052) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~