在介绍优先队列的博文中,我们提到了数据结构二叉堆,并且说明了二叉堆的一个特殊用途——排序,同时给出了其时间复杂度O(N*logN)。这个时间界是目前我们看到最好的(使用Sedgewick序列的希尔排序时间复杂度为O(N4/3),下图为两者函数图像对比,但是注意,这并不是希尔排序与堆排序的对比,只是两 ...
分类:
编程语言 时间:
2017-09-20 21:50:32
阅读次数:
173
参考博客:基于python的七种经典排序算法 常用排序算法总结(一) 序前传 - 树与二叉树 树是一种很常见的非线性的数据结构,称为树形结构,简称树。所谓数据结构就是一组数据的集合连同它们的储存关系和对它们的操作方法。树形结构就像自然界的一颗树的构造一样,有一个根和若干个树枝和树叶。根或主干是第一层 ...
分类:
编程语言 时间:
2017-09-20 16:21:12
阅读次数:
176
#include #include #include #include #include #include #include using namespace std; //构造最大堆 void MaxHeapFixDown(int a[], int i, int n) { int j = 2 * i... ...
分类:
编程语言 时间:
2017-09-19 16:45:27
阅读次数:
271
本文用Python实现了插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^..
分类:
编程语言 时间:
2017-09-16 11:54:22
阅读次数:
188
原文链接:http://blog.csdn.net/sxhelijian/article/details/50295637 例:对{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}进行堆排序的过程。 算法如下: (1)循环建立初始堆 用给出的序列构造堆的初始状 ...
分类:
编程语言 时间:
2017-09-14 13:22:42
阅读次数:
133
1、当前云计算技术发展迅速,主流云计算平台大多数都以Linux为基础。请问以下哪个技术是Linux内核提供的可以限制、记录、隔离进程组所使用的物理资源(如:cpu,memory,IO等等)的机制正确答案: B A KVMB cgroupC cgroupD namespace 2、某IP地址为160. ...
分类:
其他好文 时间:
2017-09-13 17:15:56
阅读次数:
232
堆排序 Heap Sort 堆排序是一种选择排序,其时间复杂度为O(nlogn)。 堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆) 情形2:ki >= k2i 且ki >= k2i+1 ...
分类:
编程语言 时间:
2017-09-11 22:47:13
阅读次数:
182
我们平时说的“排序”,指的是内部排序,即使用内存资源进行排序的。除了内部排序之外,还有外部排序。本文主要介绍内部排序。 内部排序分为插入排序、选择排序、交换排序、归并排序等。其中,插入排序又分为直接插入排序和希尔排序;选择排序分为简单选择排序和堆排序;交换排序又分为冒泡排序和快速排序。 也就是说,本 ...
分类:
编程语言 时间:
2017-09-10 19:02:35
阅读次数:
208
排序算法: 快排: o(nlogn) o(1)不稳定 归并:o(nlogn) o(n) 稳定 基数: 冒泡 睡眠 面条 烙饼 1、quicksort: 返回条件:start >=end private = a[start]+a[end]/2 while(left <= right) while(le ...
分类:
编程语言 时间:
2017-09-10 14:21:04
阅读次数:
220
插入排序, shell排序, 选择排序, 冒泡, 堆排序, 归并排序, 快速排序 ...
分类:
编程语言 时间:
2017-09-10 10:17:30
阅读次数:
178