https://blog.csdn.net/qq_19446965/article/details/102290460 快选希堆不稳(这几种排序是不稳定的), 归选基堆不变(这几种排序的时间复杂度不变化) 元素的时间复杂度与初始序列无关的是:口诀:一堆(堆排序)海归(归并排序)选(选择排序)基友 ...
分类:
编程语言 时间:
2019-10-07 11:34:47
阅读次数:
97
我之前里的文章,写的大部分都是与 计算机基础知识 相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,可以帮助我们更快着学习一门知识,更加懂得计算机的运行机制。当然,在面试中也经常会被问到,特别是对 ...
分类:
其他好文 时间:
2019-10-07 09:36:18
阅读次数:
96
1 #include<iostream> 2 using namespace std; 3 4 void swap(int arr[], int i, int j) 5 { 6 int temp = arr[i]; 7 arr[i] = arr[j]; 8 arr[j] = temp; 9 } 10... ...
分类:
编程语言 时间:
2019-10-07 00:29:04
阅读次数:
101
一.对一个数组用堆排的方法排序 二.链表实现插入排序 三.设计一个算法,在尽可能少的时间里内重排数组,将所有关键字负值记录放在所有关键字非负值记录之前。O( n ) 的时间复杂度 四.写双冒泡排序算法。( 排序过程中交替改变扫描方向 ) 五.将两个递增的有序的单链表合并成一个递增有序的单链表。( 算 ...
分类:
编程语言 时间:
2019-10-06 09:36:45
阅读次数:
72
稳定性: 稳定:冒泡排序,插入排序,归并排序、桶排序、计数排序、基数排序 非稳定:选择排序、快速排序、堆排 稳定性的优势 稳定性可保证双属性条件下,按第一个属性排序后,再按照第二个属性排序,排完后属性2相等的元素,按属性1的顺序排列。 工程中 长序列: 基础类型:快排(非稳定) 自定义属性:堆排(稳 ...
分类:
编程语言 时间:
2019-10-03 21:42:17
阅读次数:
94
题目描述: 方法一:堆排序* 方法二:快速排序 方法三:bfprt算法* ...
分类:
编程语言 时间:
2019-10-03 18:16:13
阅读次数:
78
1 堆的概念 堆是一棵顺序存储的完全二叉树。 其中每个结点的关键字都不大于其孩子结点的关键字,这样的堆称为小根堆。 其中每个结点的关键字都不小于其孩子结点的关键字,这样的堆称为大根堆。 举例来说,对于n个元素的序列{R0, R1, ... , Rn}当且仅当满足下列关系之一时,称之为堆: (1) R ...
分类:
编程语言 时间:
2019-10-03 16:04:06
阅读次数:
115
题意: n个石子堆排成一排,每次可以将连续的最少L堆,最多R堆石子合并在一起,消耗的代价为要合并的石子总数 求合并成1堆的最小代价,如果无法做到输出0、 分析: 关键在于二维数组无法通过枚举解决了,所以要多开一维,用三维数组来做。 表示的状态为从第 i 堆,到第 j 堆,合并为 x 堆,最小需要的代 ...
分类:
其他好文 时间:
2019-10-01 10:01:55
阅读次数:
93
``` !/usr/bin/python coding=UTF 8 i 指的是父节点 求一个父节点的左节点 是i 2+1 右节点 i 2+2 i 指的是孩子节点 求父节点的方式是 (i 2)//2 思路:先进行堆的调整或构造成一个大堆,然后在进行堆的排序 sift函数思路:循环将父节点和左右孩子节点 ...
分类:
编程语言 时间:
2019-09-30 18:27:03
阅读次数:
91
分为小顶堆和大顶堆,小顶堆的性质是任何一个节点的两个字节点都比这个节点大,大顶堆相反 在建立大顶堆的时候,我的理解是先建立一颗假的小顶堆,建立完之后,每次根节点和堆顶进行交换(因为堆顶能保证堆顶为当前所有数的最小),然后将堆的大小减去1,这样在对规格为n-1的堆进行调整,直到堆的大小为1 然后调整完 ...
分类:
编程语言 时间:
2019-09-30 12:50:41
阅读次数:
86