插入排序是一种稳定的排序算法。 基本思想: 把N个待排序元素看成一个有序表和一个无序表,开始时有序表中只有一个元素,无序表中有N-1个元素;每次从无序表中取出一个元素,将它插入到有序表中,使之成为新的有序表,重复N-1次完成整个排序过程。 算法分析: 1)从序列第一个元素开始,该元素可以认为已经被排 ...
分类:
编程语言 时间:
2019-10-13 13:00:02
阅读次数:
67
顺序有序表的合并 此为简单的非递减有序排列,以整数为例: ...
分类:
其他好文 时间:
2019-10-07 14:48:49
阅读次数:
81
插入排序的基本思想:每次将一个待排序的元素按其关键字大小插入到前面已经排好的子序表中的适当位置,直到全部元素插入完成为止。本次介绍直接插入排序,折半插入排序和希尔排序。 1 直接插入排序 直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和 ...
分类:
编程语言 时间:
2019-10-01 18:44:59
阅读次数:
97
概念介绍 有同学想了解插入排序,今天它来了!插入排序的核心思想是:把n个待排序的元素看成为一个有序表和一个无序表,默认开始时第一个元素为有序表中的唯一元素,剩余的n-1个元素为无序表中的元素,排序的过程是每次从无序表中取出第一个元素,通过和有序表中的元素进行对比,有序的插入到有序表中。概念有点长,如 ...
分类:
编程语言 时间:
2019-09-26 17:29:06
阅读次数:
86
力扣刷题 二分查找法 二分查找法又称折半查找法。 优点:比较次数少,查找速度快,平均性能好; 缺点:要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较 如果两者相等,则查找成功 否则 ...
分类:
其他好文 时间:
2019-09-21 19:07:26
阅读次数:
129
1.长度为n的顺序表中,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,用于删除线性表中所有值为x的数据元素。(满足要求的数放在第k位上) 2.从有序顺序表中删除其值在给定值s与t之间(包括s和t,要求s<t)的所有元素,如果s或者t不合理或者顺序表为空则显示出错信息并退出运行。(掐掉中间 ...
分类:
其他好文 时间:
2019-09-20 21:14:57
阅读次数:
78
需求:将一个按顺序排放的表的顺序打乱 注意:该函数会修改掉原始表的数据,因为lua里表是传引用的 function Table_Rand(t) if t == nil then return end local tRet = {} local Total = table.getn(t) while ...
分类:
其他好文 时间:
2019-09-16 19:27:19
阅读次数:
133
一.冒泡排序(Bubble Sort):1.基本思想:从无序序列头部开始,进行两两比较,根据大小交换位置,知道最后将大(小)的数据元素交换到无需队列的队尾,从而成为有序列表的一部分;下一次继续这个过程,直到所有数据元素都排好序2.运行过程:冒泡排序算法的运作如下:(1)比较相邻的元素。比如第一个比第 ...
分类:
编程语言 时间:
2019-09-12 09:23:47
阅读次数:
82
定义 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 原理 第一 ...
分类:
编程语言 时间:
2019-09-05 23:01:14
阅读次数:
135
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。 ...
分类:
编程语言 时间:
2019-09-02 00:13:24
阅读次数:
108