快速排序
来源:互联网 发布:淘宝一单刷几百件 编辑:程序博客网 时间:2024/05/16 05:17
思路(正序):在一个数组中选出一个n位置的key值,使得数组中的位置小于n的值小于可以,位置大于n的值大于key值。利用递归对左右两部分重复这一过程,既可以正确排序。
198.#include <stdio.h>199.void swap(int *a,int *b)200.{201.int temp = *a;202.*a = *b;203.*b = temp;204.}205.void sort(int *list,int m,int n)206.{207.int key=0;208.int k = (m+n)/2;209.int i=0,j=0;210.if(m<n)211.{212.swap(list+m,list+k);213.key = list[m];214.i = m+1;215.j = n;216.while(i<=j)217.{218.while(i<=n&&list[i]<=key)219.{220.i++;221.}222.while(j>=m&&list[j]>=key)223.{224.j--;225.}226.if(i<j)227.{228.swap(list+i,list+j);229.}230.}231.swap(list+m,list+j);232.sort(list,m,j-1);233.sort(list,j+1,n);234.}235.}236.void print(int *num)237.{238.int i=0;239.for(i=0;i<10;i++)240.{241.printf("%-3d",num[i]);242.}243.}244.int main(void)245.{246.int num[10]={3,2,0,1,8,9,5,4,7,6};247.sort(num,0,9);248.print(num);249.return 0;250.}
0 0
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 短暂的总结整理20170402(内含校园网ftp搭建实现和推荐winscp、ns2、omnet)
- html的跳转页面代码
- 哈理工Final Ugly English(倒置英文)
- 蓝桥杯牌型种数
- 第6节 分析Linux内核创建一个新进程的过程【Linux内核分析】
- 快速排序
- leetcode【第六周】字符串数字相乘
- lnmp环境搭建,及memcached安装
- 网页设计学习网址整理
- Semaphore实现信号灯
- dubbo(详解)在线手册
- 蓝以中老师《高等代数》第05章:双线性函数与二次型 笔记
- 2017.4.2所学
- Collection Game