今晚没事整理一个相比冒泡、选择比较快的排序方法,
现在分享给大家:
/****************************************/
// 折半排序法(较快的一种排序方法)
// 思想:先把最小值赋给一个变量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;
}
阅读(1059) | 评论(0) | 转发(0) |