快速排序 分治法
来源:互联网 发布:人工智能类电影 编辑:程序博客网 时间:2024/06/06 08:59
快速排序
快速排序采用了分治法,由于快排效率在同为o(N*logN)的几种排序方法中效率较高,因此经常被采用。
快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。
实现思想:
1. 先从数列中取出一个数作为标记。
2. 然后进行分区,将比这个数大的全放在右边,小于或等于它的全放在它的左边。
3. 在用递归,对左右边的数进行上述过程,直到各个区间就只有一个数。
具体实现如下:
void quick_sort(int a[],int first,int last){ if(first<last) { int i=first,j=last,x=a[first]; while(i<j) { while(i<j&&a[j]>=x)//从右向左找比x小的数 j--; if(i<j) a[i++]=a[j];//将小的赋值到 a[i] while(i<j&&a[i]<x)//从左向有找比x大的数 i++; if(i<j) a[j--]=a[i];//将大的赋值到a[j] }//当i=j时间 while 结束 a[i]=x;//再将 x 赋值给a[i] i右边的大于x i左边的小于x quick_sort(a,first,i-1);//递归,对左边,右边进行,上述比较交换位置 quick_sort(a,i+1,last); }}
阅读全文
0 0
- 分治法--快速排序
- 分治法--快速排序
- 分治法-快速排序
- 分治法-快速排序
- 分治法-----快速排序
- 分治法 --快速排序
- 分治法-快速排序
- 分治法--快速排序
- 快速排序 分治法
- 分治法-快速排序
- 分治法之快速排序
- 分治法之快速排序
- 排序4--快速(分治法)
- 分治法之快速排序
- 分治法(Scheme) -- 快速排序
- 分治法之快速排序
- 分治法-----快速排序算法
- 快速排序(分治法)
- 开发者都应该使用的10个C++11特性
- 【字符串】查找一个字符串中第一个只出现两次的字符。比如:“abcdefabcdefabc”中第一个只出现两次为‘d’,要求时间复杂度为O(N),空间复杂度为O(1)
- Angular4+NodeJs+MySQL 入门-02 MySql操作类
- js将 一串数字1403149534转换为日期格式
- (转载)request.getParameter() 和request.getAttribute() 区别
- 快速排序 分治法
- 监听器listener.ora中HOST参数配置
- <9>soc sensor与bayer sensor 区别,内外置isp
- 嵌入式学习日记(十一)
- mongodb 宕机重启,linux
- JS 压缩混淆
- 脉冲云是如何实现应用相互访问的
- Android Studio Live Templates使用详解,提高敲代码的速度
- 第四章整合管理