
数据结构
噼里啪啦绷
这个作者很懒,什么都没留下…
展开
-
堆排序
概念:父结点、子结点、叶子结点、非叶子结点1、堆分为:(完全二叉树)(1)大根堆:在整个堆中,左子树、右子树的数据都比父结点的数据小。(2)小根堆:在整个堆中,左子树、右子树的数据都比父结点的数据大。2、给出父结点n求子结点左子树:2*n+1右子树:2*(n+1)3、给出子结点n求父结点(n-1)/2举例及思想、步骤:举例:生序排列-调整成大根堆,过程如...原创 2018-08-04 00:44:24 · 254 阅读 · 0 评论 -
冒泡排序
基本思想/步骤:(1)比较相邻的元素。如果第一个比第二个大,就交换他们两个。(2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。(3)针对所有的元素重复以上的步骤,除了最后一个。(4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。图解:代码实现:void BubbleSort(int ar...原创 2018-08-04 00:46:54 · 146 阅读 · 0 评论 -
二路归并排序
基本思想:二路归并排序主要运用了“分治算法”,分治算法就是将一个大的问题划分为n个规模较小而结构相似的子问题。二路归并排序主旨是“分解”与“归并”:分:1.一直分两组,分别对两个数组进行排序(根据上层对下层在一组的数据通过临时数组排序,再将有序数组挪回上层数组中)。2. 循环第一步,直到划分出来的“小组”只包含一个元素,只有一个元素的数组默认为已经排好序。合:(合并时,站在...原创 2018-08-04 21:23:45 · 5333 阅读 · 0 评论 -
桶排序
基本思想: 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort),它是通过每个数的各个位数,将要排序的元素分配至某些“桶”中,以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数。图解:代码实现:int Fin...原创 2018-08-04 21:26:20 · 163 阅读 · 0 评论 -
快速排序
基本思想: 通过一趟排需将待排记录分割成独立的两部分,其中一部分记录的关键字均比有一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序做法: 附设两个指针low和high,它们的初值分别为low和high,设枢轴(通常选取第一个数)记录的关键字为pivotkey(基中点), (1)则首先从high(最后一个数)所指位置起向...原创 2018-08-04 21:34:46 · 150 阅读 · 0 评论 -
快排的优化
快排优化,总结下来有下面五点。优化1:针对最坏情况(当arr已有序,选第一个或最后一个值(即最大值或最小值)做基中点,效率低)会出现劣质的分割。 【随机取基准点】 但是,若数据不是有序的,效率比普通可能更慢优化2:【三分取中】 头 尾 中间-》low mid high,mid=(low+high)/2+low 从数组中三个标志位取中间大的值...原创 2018-08-04 21:37:34 · 636 阅读 · 0 评论 -
直接插入排序
基本思想: 先将序列中的第1个记录看成是一个有序的子序列,然后从第2个记录起逐个进行插入,直至整个序列变成按关键字非递减有序序列为止。(每次从左至右未排序的数 与 已排序的数 从右至左比较,再进行插入。)图解:代码实现:void InsertSort(int arr[], int len){ int i;//未排序序列待排序的元素下标 int j;//已排序...原创 2018-08-02 17:24:49 · 241 阅读 · 0 评论 -
希尔排序
基本思想: 先将整个待排序列分割为若干个子序列(不是“逐段分割”,而是将相隔某个“增量”的记录组成一个子序列),分别进行直接插入排序,这样重复几次(增量不断减小 一般是取前一次一半),待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。 增量:把整个数据,分成几个小组,一般为素数。图解:代码实现:void Shell(int ar...原创 2018-08-02 17:28:50 · 120 阅读 · 0 评论 -
简单选择排序
基本思想: 在待排序数组中选出最小的(或最大)的与第一个位置的数据交换 然后在剩下的待排序数组中找出最小(或最大)的与第二个位置的数据交换,以此类推,直到第n-1个元素。 简单选择排序可以说是冒泡排序的一种改版,它不再两两比较出较小数就进行交换,而是每次遍历比较当前数的后面所有数,最后再把最小的数和当前数进行交换。图解:代码实现:void se...原创 2018-08-02 17:31:48 · 28746 阅读 · 0 评论