快速排序
来源:互联网 发布:python 日志模块 编辑:程序博客网 时间:2024/06/07 19:03
#include <stdio.h>#include <stdlib.h>/* 功能:快速排序描述:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。*/int quicksort(int a[],int left,int right);int main(int argc, char *argv[]) { int a[100]; int i,j,n; //读入数据 scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); quicksort(a,1,n);//快速排序调用 //输出排序后的结果 for(i=1;i<=n;i++) printf("%d",a[i]); return 0;}int quicksort(int a[],int left,int right){//Swap(s[l], s[(l + r) / 2]); //将中间的这个数和第一个数交换 参见注1 if(a=NULL||left>right) return -1; int i = left; int j = right; int x = a[i]; while(i < j){ while(i<j&&a[j]>x) j--; if(i<j) a[i] = a[j++]; while(i < j&&a[i] < x) i++; if(i<j) a[j--] = a[i]; } a[i] = x; quicksort(a,left,i-1); quicksort(a,i+1,right);}
注1:取中间数为参考
注2:该函数有些问题,需调整
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 配置go服务器
- Linux下jenkins的slave配置
- HTML5 canvas贝塞尔曲线_图解贝塞尔
- asm从10.2升级到11.2可能会遇到的bug,请把本文作为升级之后的检查项去对待
- Android使用RecyclerView和Picasso实现大规模浏览网络图片(附带缓存技术)
- 快速排序
- jquery table 基本操作
- IOS中块Block
- 字符串分割
- gcc编译器-出现-fpermissive的问题
- 几种全局变量的使用方法
- CSDN第一天
- frameset 与frame 设置的技巧
- 【BZOJ3223】Tyvj1729文艺平衡树