链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序) 用到的链表结构如下所示: 一、直接交换结点 1、直接插入排序【时间复杂度:O(n^2),空间复杂度:O(1)】 插入排序的基本思想:将待排序表看作是左、右两部分,其中左边为有序区,右边为无序区;整个排序过程就是将右边无序区中的记录依次按关键字大 ...
分类:
编程语言 时间:
2019-02-20 13:08:36
阅读次数:
183
十大经典排序算法 主题: 关于时间复杂度: 平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。 线性对数阶 (O(nlog2n)) 排序 快速排序、堆排序和归并排序。 O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序。 线性阶 (O(n)) 排序 基数排 ...
分类:
编程语言 时间:
2019-02-18 01:24:12
阅读次数:
199
二分查找,import bisect 堆排序,import heapq 哈希算法,import hashlib 压缩,lzma 图形处理,PIL 处理xml文件,PyXML 多媒体操作,PyMedia Xpath处理,from lxml import etree ...
分类:
编程语言 时间:
2019-02-17 23:34:56
阅读次数:
219
第一次了解到堆排序 和完全二叉树有关 详情见代码 关于堆的建立 小顶堆 父节点小于子结点 大顶堆 父节点大于子结点 ...
分类:
其他好文 时间:
2019-02-17 16:43:27
阅读次数:
177
不会其他排序的小金羊~~又来水题了~~ 本题我的思路:堆排,速度不需要算很快,AC就可以... 注意:初学者不宜抄此代码(压行严重) code: cpp include include include //调用优先队列请使用 using namespace std; //对于这道题,我们使用堆排序 ...
分类:
其他好文 时间:
2019-02-15 21:14:59
阅读次数:
227
排序有很多种但是 就看你会哪一种了! 选择排序 O(𝑛2) 插入排序 O(𝑛2) 冒泡排序 O(𝑛2) 计数排序 O(𝑛 + 𝑚) 基数排序 O (𝑛 log 𝑚) 桶排序 O(𝑛)~O(𝑛2) 归并排序 O(𝑛 log 𝑛)堆排序 O(𝑛 log 𝑛)快速排序 O(𝑛 ...
分类:
编程语言 时间:
2019-02-15 19:40:40
阅读次数:
198
堆排序的基本思想(小顶堆) 1) 先将初始排列关键字序列(R1,R2...,Rn-1,Rn)构成小顶堆,此堆为初始的无序区.(这里是从最后一个非叶结点向前进行赛选) 2)将堆顶元素R1与最后一个元素Rn交换,此时得到新的无序区(R1,R2...,Rn-1)和新的有序区(Rn),并且Rn小于无序区所有 ...
分类:
编程语言 时间:
2019-01-30 21:51:59
阅读次数:
190
简单选择排序: 简单选择排序: package cn.mdj.test; public class SelectSort { public static void sort(int array[]){ int len = array.length; int temp; //临时变量 int inde ...
分类:
编程语言 时间:
2019-01-28 15:17:49
阅读次数:
210
排序的算法有很多,冒泡、选择、直接插入、鸡尾酒、快排、堆排......,下文主将尽可能的介绍本人学过的所有排序,以从小到大为最终排序结果,C 为主要实现语言。 一、冒泡排序(Bubble Sort): 冒泡排序是一种简单的利用交换来完成排序的算法。它重复地走访过要排序的数列,一次比较两个元素,如果他 ...
分类:
编程语言 时间:
2019-01-21 00:00:32
阅读次数:
281
排序方法的演示1)插入排序(直接插入排序、希尔排序)2)交换排序(冒泡排序、快速排序)3)选择排序(直接选择排序、堆排序)4)归并排序5)分配排序(基数排序)所需辅助空间最多:归并排序所需辅助空间最少:堆排序平均速度最快:快速排序不稳定:快速排序,希尔排序,堆排序。 1.插入排序 1.1.基本思想 ...
分类:
编程语言 时间:
2019-01-20 18:49:49
阅读次数:
211