C语言编简单快速排序算法

qq_34057138 2016-02-23 05:45:48


#include <stdio.h>
#define N 10
void quicksort (int a[],int low ,int high);
int split(int a[],int low,int high);
int main()
{
int a[N],i;
printf("Enter %d number to be sorted: ",N);
for (i=0;i<N;i++)
scanf("%d",&a[i]);
quicksort(a,0,N-1);
printf("In sorted order: ");
for (i =0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;

}
void quicksort (int a[],int low,int high)
{
int middle;
if (low >=high) return;
middle =split (a,low,high);
quicksort(a,low,middle-1);
quicksort(a,middle +1,high);
}

int split (int a[],int low,int high)
{
int part_element = a[low];
for(;;){
while (low<high && (part_element <= a[high]))
high --;
if (low >= high) break;
a[low++]= a[high];
while (low < high && (a[low] <= part_element))
low++;
if (low >= high) break;
a[high--]=a[low];
}
a[high] = part_element;
return high;
}

...全文
266 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34057138 2016-02-26
  • 打赏
  • 举报
回复
引用 3 楼 jone7319的回复:
现成的算法太多了:插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
谢谢你,算法太多了,学习的地方很多。慢慢来。
jone7319 2016-02-24
  • 打赏
  • 举报
回复
现成的算法太多了:插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
qq_34057138 2016-02-23
  • 打赏
  • 举报
回复
还有其他的经典的快速排序方法吗?
jone7319 2016-02-23
  • 打赏
  • 举报
回复
你的问题是什么呢?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧