堆 堆(heap)是计算机科学中一类特殊的数据结构的统称,通常是一个可以被看做一棵树的数组对象。 堆{k1,k2,ki,…,kn} (ki <= k2i,ki <= k2i+1)|(ki >= k2i,ki >= k2i+1), (i = 1,2,3,4...n/2) 关于堆: 堆中某个节点的值总是 ...
分类:
编程语言 时间:
2020-06-16 20:24:45
阅读次数:
66
题目:各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机的数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。基本要求:(1) 从以下常用的内部排序算法至少选取5种进行比较:直接插入排序;折半折入排序;希尔排序;起泡排序;快速排序;简单选择排序;堆排 ...
分类:
编程语言 时间:
2020-06-15 22:34:29
阅读次数:
61
主要介绍关于插入排序、冒泡排序、快速排序、二分归并排序等几种排序算法。 1.插入排序 2.冒泡排序 3.快速排序 4.二分归并排序 首先是几大算法的效率: 1.插入排序: 插入排序:以下图为例,下一个预备插入的为2,首先和前一个7进行对比,7>2,所以7向后挪动,2再和6进行比较,6向后挪动...依 ...
分类:
编程语言 时间:
2020-06-15 22:29:53
阅读次数:
70
1、堆的定义 堆就是用数组实现的二叉树,所有它没有使用父指针或者子指针。 堆就是利用完全二叉树的结构来维护的一维数组。 创建一个堆除了一个简单的一维数组以外,不需要任何额外的空间。 如果我们不允许使用指针,那么我们怎么知道哪一个节点是父节点,哪一个节点是它的子节点呢?节点在数组中的位置index 和 ...
分类:
编程语言 时间:
2020-06-15 21:13:23
阅读次数:
94
1045 快速排序 (25分) 求划分的主元(比左边的都大,右边的都小) #include<iostream> #include<vector> #include<cctype> #include<map> #include<set> #include<sstream> #include<strin ...
分类:
编程语言 时间:
2020-06-14 10:28:39
阅读次数:
66
package HeapSort // 使用堆排序查询出找出堆里面最大的数 func HeapSortMax(arr []int, length int) []int { //length := len(arr) if length <= 1 { return arr } depth := leng ...
分类:
编程语言 时间:
2020-06-13 22:58:03
阅读次数:
73
快速排序 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效 ...
分类:
编程语言 时间:
2020-06-13 17:46:26
阅读次数:
79
数据结构::堆排序 #include <stdio.h> void swap(int array[],int x,int y){ int key; key=array[x]; array[x]=array[y]; array[y]=key; } //从大到小排序 //void Down(int ar ...
分类:
编程语言 时间:
2020-06-13 17:13:18
阅读次数:
66
官网给的大纲吧,你可以把它当重点复习,但如果你只看大纲内容,你会哭的,因为,超纲非常严重!!!!还有,不要只看天勤或王道的书,很多知识上面没有覆盖到,有时间的话尽量看看课本。 选择题,考的范围很广泛,但知识点考的比较简单,这一部分建议大家要有一个比较全面的复习,题目不难,就怕有的知识点压根儿没见过。 ...
分类:
其他好文 时间:
2020-06-13 15:47:05
阅读次数:
77
一、快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整 ...
分类:
编程语言 时间:
2020-06-13 00:55:25
阅读次数:
101