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的更多相关文章

  1. 快速排序quick_sort(python的两种实现方式)

    排序算法有很多,目前最好的是quick_sort:unstable,spatial complexity is nlogN. 快速排序原理 python实现 严蔚敏的 datastruct书中有伪代码 ...

  2. python数据结构之quick_sort

    Quick sort , also known as partition-exchange sort, divides the data to be sorted into two separate ...

  3. 快速排序(c++,递归)quick_sort

    放上c++代码,模板 1 #include <iostream> 2 #include<bits/stdc++.h> 3 using namespace std; 4 5 in ...

  4. 快速排序Quick_Sort

    快排——排序中的明星算法,也几乎是必须掌握的算法,这次我们来领略以下快排为何魅力如此之大. 快排主要有两种思路,分别是挖坑法和交换法,这里我们以挖坑法为例来进行介绍,交换法可以参考这篇博文.值得一提的 ...

  5. 如何进行python性能分析?

    在分析python代码性能瓶颈,但又不想修改源代码的时候,ipython shell以及第三方库提供了很多扩展工具,可以不用在代码里面加上统计性能的装饰器,也能很方便直观的分析代码性能.下面以我自己实 ...

  6. [算法]——快速排序(Quick Sort)

    顾名思义,快速排序(quick sort)速度十分快,时间复杂度为O(nlogn).虽然从此角度讲,也有很多排序算法如归并排序.堆排序甚至希尔排序等,都能达到如此快速,但是快速排序使用更加广泛,以至于 ...

  7. php排序算法

    <?php//冒泡排序(数组排序) function bubble_sort($array){ $count = count($array); if ($count <= 0) retur ...

  8. 不重新编译php安装配置eAccelerator

    eAccelerator属于一个免费的开源php加速.优化.编译和动态缓存项目,原理和apc类似,都是通过缓存php编译后的opcode代码来提高php脚本的执行性能,而且eAccelerator本身 ...

  9. php冒泡排序和快速排序

    如有错误,请指出... //快速排序(array_merge整合数组)function quick_sort($arr){ $num=count($arr); if($num<=1){ retu ...

随机推荐

  1. C++——Vector

    #include "opencv2/objdetect.hpp" #include "opencv2/videoio.hpp" #include "o ...

  2. 基于Eureka的服务治理

    代码地址如下:http://www.demodashi.com/demo/11927.html 一.服务的注册与发现 关系调用说明: 服务生产者启动时,向服务注册中心注册自己提供的服务 服务消费者启动 ...

  3. div轮流滚动显示

    window.onload = function(){ var _box1 = document.getElementById("box1"); var _box2 = docum ...

  4. OJ题解记录计划

    容错声明: ①题目选自https://acm.ecnu.edu.cn/,不再检查题目删改情况 ②所有代码仅代表个人AC提交,不保证解法无误 E0001  A+B Problem First AC: 2 ...

  5. 平板电脑与火狐浏览器下载excel中文文件名乱码

    fileName = new String(fileName.getBytes("utf-8"), "iso8859-1");//兼容火狐.ie.平板 resp ...

  6. 10.17 elemen.js

    今天终于把element.js的官方文档看完了,主要是基础组件的用法,看的时候有种之前学bootstrap的感觉,似曾相识. 虽然它是基于VUE的,但是展示给我们的代码已经精简到不用会VUE也能看懂了 ...

  7. 52-python 画图二维

    Python--matplotlib绘图可视化知识点整理 1.折线图: import numpy as np import matplotlib.pyplot as plt from pylab im ...

  8. python3 电脑说话

    #coding:utf-8 import win32com.client spk = win32com.client.Dispatch("SAPI.SpVoice") spk.Sp ...

  9. apache启动失败

    1.端口被占用 2.路径及文件夹问题(安装路径的文件夹名称中不能为中文)

  10. Python3 使用pymysql链接MySQL数据库

    1,pymysql安装 pip install pymysql 2,pymysql使用 import pymysql 3,实例查询 import pymysql #获取一个数据库链接 #格式 主机地址 ...