版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u012515223/article/details/24323125 表插入排序 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24323125 表插入排序(List Insertion Sort)是使用静态链表进行插入排序, 每次插入改动指针项, 通过指针项的链接顺序, 使静态链表有序. 改动2n…
2-路插入排序 具体解释 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24267679 2-路插入排序的思想非常有意思: 通过一个辅助的循环数组, 假设大于最大的元素, 则插入至尾部, 假设小于最小的元素, 则插入至头部, 假设在两者之间, 採用折半查找的方式,移动一部分的元素; 设计到循环数组的中间值的查找和数据移动的问题. 因为折半查找能够降低比較次数, 首尾插入又不须要移动元素, 即移动次数约为[(n^2)/…
数据结构 - 希尔排序(Shell's Sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24363981 希尔排序(Shell's Sort), 又称"缩小增量排序"(Diminishing Increment Sort), 是插入排序的一种. 主要思想是: 先将整个记录, 通过间隔分成若干个子序列, 分别进行插入排序, 待整个序列基本有序时, 再进行一次插入排序. 由于插入排…
数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./*  数据结构C语言版 表插入排序  算法10.3 P267-P270  编译环境:Dev-C++ 4.9.9.2*/ #include <stdio.h>#include <limits.h> // 静态链表类型 #define SIZE 100 // 静态链表容量 typedef int KeyType; // 定义关键字类型为整型 typedef int …
归并排序(merging sort) 具体解释 及 代码 本文地址: http://blog.csdn.net/caroline_wendy 归并排序(merging sort): 包括2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表. 归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如高速排序(quick sort)和堆排序(heap sort), 可是归并排序是稳定排序, 而高速排序和堆排序则不是. 代码: /* * main.cp…
树形选择排序 (tree selection sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 算法逻辑: 依据节点的大小, 建立树, 输出树的根节点, 并把此重置为最大值, 再重构树. 由于树中保留了一些比較的逻辑, 所以降低了比較次数. 也称锦标赛排序, 时间复杂度为O(nlogn), 由于每一个值(共n个)须要进行树的深度(logn)次比較. 參考<数据结构>(严蔚敏版) 第278-279页. 树形选择排序(tr…
堆排序(heap sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 堆排序包括两个步骤: 第一步: 是建立大顶堆(从大到小排序)或小顶堆(从小到大排序), 从下往上建立; 如建堆时, s是从大到小; 第二步: 是依次交换堆顶和堆底, 并把交换后的堆底输出, 仅仅排列剩余的堆, 从上往下建立; 如构造时, s始终是1; 堆排序(Heap Sort)的时间复杂度是O(nlogn), 最坏情况下也是如此. 而高速排序(Quic…
数据结构->直接插入排序 实现效果 从小到大排序 算法原理 有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序. 算法步骤 从第一个元素开始,该元素可以认为已经被排序. 取出下一个元素,在已经排序的元素序列中从后向前扫描. 如果该元素(已排序)大于新元素,将该元素移到下一位置. 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置. 将新元素插入到下一位置中. 重复步骤2. 时间复杂度 如果目标是把n个元素的序列升序排列,那么采用插入排序存在最…
排序耗时的操作主要分为两种:查找比较.记录移位. 1.表插入排序 在查找比较基础上,尽量减少记录移位步数,可以令排序操作耗时降低,表插入排序正是为减少移位次数而出现的. 在数据结构上,数据是存储在静态数组(表)中,而每个数组除了数据关键字外还记录了表中下一个记录,按记录遍历的关键字则是排序的结果. 如:有如下需要排序的数据: 关键字 5 1 3 2 4 下一个记录的表中位置 - - - - - 排序后得到的表为 关键字 5 1 3 2 4 下一个记录的表中位置 -1 3 4 2 0 这里还需要提…
首字母大写(capwords) 和 创建转换表(maketrans) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27051977 string模块, 包括处理文本的常量和类. capwords(), 把字符串(string)中, 全部单词的首字母大写; maketrans(), 创建对比表, 然后使用translate()函数, 调用对比表, 把字符串(string)中的字符, 进行对应的替换. 代码: # -*…