十大经典排序算法 排序算法可以分为内部排序和外部排序,内部排序时数据记录在内存中进行排序,而外部排序时因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等 ...
分类:
编程语言 时间:
2021-04-27 15:03:51
阅读次数:
0
如果用了display:inline-block;标签换行时就会出现间隙。如果必须用的话就改变div默认样式: div{margin:0;padding:0;} 改成 div{margin:0;padding:0;font-size: 0;} ...
分类:
其他好文 时间:
2021-04-21 13:00:02
阅读次数:
0
#归并排序 思路:(分而治之的思想) 1.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列; 2.设定两个指针,最初位置分别为两个已经排序序列的起始位置; 3.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置; 4.重复步骤 3 直到某一指针达到序列 ...
分类:
编程语言 时间:
2021-04-15 12:38:31
阅读次数:
0
315. 计算右侧小于当前元素的个数 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例: 输入:nums = [5,2,6,1] 输出:[2,1,1,0] 解释: ...
分类:
编程语言 时间:
2021-04-14 11:58:17
阅读次数:
0
比如外存中有100G的字符串文件,1G的内存,对字符串进行排序操作。 1.首先将100G的内容分成若干个小部分,每个部分不超过500MB。分别读取这些小部分进行排序,然后写入到外存中。这样就得到了若干个已经排好序的小部分。 2.多路归并排序,(相对二路归并而言)。对于k个已经排好序的小部分,每次取出 ...
分类:
编程语言 时间:
2021-04-13 12:30:46
阅读次数:
0
LeetCode148 排序链表 题目 给定链表的头结点head,返回排序后的链表,按照由小到大的顺序。 案例1 输入:head = [4,2,1,3] 输出:[1,2,3,4] 分析 使用归并排序,先找出中间节点(快慢指针:快指针每次走两步,慢指针每次走一步,当快指针走到链表最后,慢指针所在的位置 ...
分类:
编程语言 时间:
2021-04-10 13:34:31
阅读次数:
0
归并排序介绍 一种分而治之思想 归并排序步骤 从下往上的归并排序(自下而上的迭代) 从上往下的归并排序(自上而下的递归):它与"从下往上"在排序上是反方向的。它基本包括3步: ① 分解 -- 将当前区间一分为二,即求分裂点 mid = (low + high)/2; ② 求解 -- 递归地对两个子区 ...
分类:
编程语言 时间:
2021-04-10 13:21:25
阅读次数:
0
归并排序模板 code: #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int N = 1e5 + 10; typedef long long ...
分类:
编程语言 时间:
2021-04-05 12:52:30
阅读次数:
0
public class MergeSort { //基本思想为分治法,将有序的子序列合并,得到有序的序列。先使每个子序列有序,再使子序列段间有序。 //当有 n 个记录时,需进行 logn 轮归并排序,每一轮归并比较次数不超过 n,元素移动次数为 n,因此时间复杂度为 O(nlogn)。 //归并 ...
分类:
编程语言 时间:
2021-03-31 12:01:17
阅读次数:
0
归并排序介绍: 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer) 策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修 补"在一起,即分而治之)。 归并排序 ...
分类:
编程语言 时间:
2021-03-08 14:00:17
阅读次数:
0