Quick_sort
typedef int ElementType; void Quick_sort(ElementType A[], int N)
{
Quicksort(A, , N-);
} void Quicksort(ElementType A[], int left, int right)
{
if(right-left+ < )
{
//插入排序
Insert_sort(A, right-left+);
}
else
{
//调用快排
//找中位数,优化快排
pivot = Median3(A, left, right); int i = left;
int j = right; while(true)
{
while(A[++i] < pivot);
while(A[--j] > pivot);
if(i < j)
swap(&A[i], &A[j]);
else
break;
}
swap(&A[i], &A[right-]); //递归左右
Quicksort(A, left, i-);
Quicksort(A, i+, right);
}
} void Insert_sort(ElementType A[], int N)
{
for(int i = ; i < N; i++)
{
int j;
int Temp = A[i];
for(j = i-; j >= && A[j] > Temp; j--)
{
A[j] = A[j+];
}
A[j] = Temp;
}
}
Quick_sort的更多相关文章
- 快速排序quick_sort(python的两种实现方式)
排序算法有很多,目前最好的是quick_sort:unstable,spatial complexity is nlogN. 快速排序原理 python实现 严蔚敏的 datastruct书中有伪代码 ...
- python数据结构之quick_sort
Quick sort , also known as partition-exchange sort, divides the data to be sorted into two separate ...
- 快速排序(c++,递归)quick_sort
放上c++代码,模板 1 #include <iostream> 2 #include<bits/stdc++.h> 3 using namespace std; 4 5 in ...
- 快速排序Quick_Sort
快排——排序中的明星算法,也几乎是必须掌握的算法,这次我们来领略以下快排为何魅力如此之大. 快排主要有两种思路,分别是挖坑法和交换法,这里我们以挖坑法为例来进行介绍,交换法可以参考这篇博文.值得一提的 ...
- 如何进行python性能分析?
在分析python代码性能瓶颈,但又不想修改源代码的时候,ipython shell以及第三方库提供了很多扩展工具,可以不用在代码里面加上统计性能的装饰器,也能很方便直观的分析代码性能.下面以我自己实 ...
- [算法]——快速排序(Quick Sort)
顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...
- php排序算法
<?php//冒泡排序(数组排序) function bubble_sort($array){ $count = count($array); if ($count <= 0) retur ...
- 不重新编译php安装配置eAccelerator
eAccelerator属于一个免费的开源php加速.优化.编译和动态缓存项目,原理和apc类似,都是通过缓存php编译后的opcode代码来提高php脚本的执行性能,而且eAccelerator本身 ...
- php冒泡排序和快速排序
如有错误,请指出... //快速排序(array_merge整合数组)function quick_sort($arr){ $num=count($arr); if($num<=1){ retu ...
随机推荐
- css3+html5特效-向上滑动
css+html5特效-向上滑动 效果描述:切换的下拉和上拉状态 鼠标悬浮:下拉鼠标离开:上拉 /*外容器设置*/ .box1{position:relative;top:100px;left:100 ...
- 国内安装helm
helm repo remove stable helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts ...
- Python开发【第十一篇】:Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 1.原生模块pymsql. 2.ORM框架SQLAchemy. pymsql pymsql是Python中操作MySQL的模块,其使用方法和MyS ...
- MTD的认识
MTD即内存计数设备,是linux中对ROM.NORFLASH.NAND Flash等存储设备抽象出来的一个设备层,它向上提供统一的访问接口:读写.擦除等:屏蔽了底层硬件的操作.各类存储设备的差别. ...
- 坑 flutter Positioned相关
child: new Positioned( right: 0.0, ...... 报错: Positioned widgets must be placed directly inside Stac ...
- 轻量级富文本编辑器wangEditor
开发公司一个系统的时候需要一个富文本编辑器,找了几个,最后选择这个,蛮不错的. 百度搜索wangEditor,进入官网根据所介绍的使用进行开发就可以了,很不错的一个工具.
- 执行sql语句后报1055-- this is incompatible with sql_mode=only_full_group_by
这个问题是mysql5.7中存在的问题,查看原因,在任意库执行select @@sql_mode,查到的结果为ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZER ...
- docker--在centos镜像安装mysql
一.安装centos镜像 1.拉取最新版本centos镜像(拉取centos7 则使用centos:7即可) docker pull centos:lasted 2.查看已有镜像 docker ima ...
- 摹客iDoc的PS插件全新改版!—— 智能检测不对应的设计稿
一.简洁美观——iDoc的PS插件全新界面 iDoc对PS插件的界面进行了全新设计,无论是登录.上传.还是设置界面,都变得更精致.简洁美观,功能分布也非常明确,是一款轻巧且实用的小插件. 二.同步上传 ...
- 批处理-Java JDK环境变量配置
setx /M JAVA_HOME "C:\Program Files\Java\jdk1.8.0_131" setx /M CLASSPATH ".;%%JAVA_HO ...