摘要: 归并排序:逆序对问题 在一个数组中,左边的数如果比右边的数大,则这两个数构成一个逆序对,请打印所有逆序对 代码 阅读全文
posted @ 2019-12-18 22:58 cause丶 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 归并排序:小和问题 在一个数组中,每一个元素左边比当前元素值小的元素值累加起来,叫做这个数组的小和 例如:[2, 3, 4, 1, 5] 2 左边比 2 小的元素:无 3 左边比 3 小的元素:2 4 左边比 4 小的元素:2,3 1 左边比 1 小的元素:无 5 左边比 5 小的元素:2, 3, 阅读全文
posted @ 2019-12-18 22:35 cause丶 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 归并排序 1. 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 2. 设定两个指针,最初位置分别为两个已经排序序列的起始位置 3. 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 重复步骤3直到某一指针超出序列尾 将另一序列剩下的所有元素直接复制 阅读全文
posted @ 2019-12-18 21:27 cause丶 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 插入排序 插入排序的基本思想是:将数组的第一个数认为是有序数组,从后往前(从前往后)扫描该有序数组,把数组中其余n 1个数,根据数值的大小,插入到有序数组中,直至数组中的所有数有序排列为止。这样的话,n个元素需要进行n 1趟排序 代码 阅读全文
posted @ 2019-12-17 22:07 cause丶 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 选择排序 第一次从待排序的 "数据元素" 中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。 代码 阅读全文
posted @ 2019-12-17 21:33 cause丶 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 二分查找 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表 阅读全文
posted @ 2019-12-17 21:15 cause丶 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序 冒泡排序算法的原理如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤 阅读全文
posted @ 2019-12-17 20:51 cause丶 阅读(408) 评论(0) 推荐(0) 编辑