一、排序算法 1、冒泡排序(Bubble Sort) 定义:是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶 ...
分类:
编程语言 时间:
2019-08-21 21:21:30
阅读次数:
103
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括: 关于时间复杂度: 平方阶 ...
分类:
编程语言 时间:
2019-08-21 11:20:44
阅读次数:
80
享元模式(具有共性的实例对象,归并到一个类别中,避免重复创建相同实例对象) var candidateNum = 10 // 考生数量 var examCarNum = 0 // 驾考车的数量 /* 驾考车构造函数 */ function ExamCar(carType) { examCarNum+ ...
分类:
Web程序 时间:
2019-08-20 18:24:15
阅读次数:
86
```java class Solution { public ListNode sortList(ListNode head) { if (head == null || head.next == null) { return head; } ListNode slow = head, fast ...
分类:
编程语言 时间:
2019-08-18 21:48:31
阅读次数:
90
原文: http://blog.gqylpy.com/gqy/347 "首先,归并排序使用了二分法,归根到底的思想还是分而治之。拿到一个长数组,将其不停的分为左边和右边两份,然后以此递归分下去。然后再将它们按照两个有序数组的样子合并起来。这样说起来可能很难理解,所以 图就来了: 归并排序将数组以中间 ...
分类:
编程语言 时间:
2019-08-18 17:38:44
阅读次数:
66
Arrays在float/long/int/char等进行排序时,使用的算法是快速排序;而对于Object数组排序则是使用的是归并排序。 LegacyMergeSort.userRequested大致意思是“用户请求传统归并排序”的意思,通过System.setProperty("java.util ...
分类:
编程语言 时间:
2019-08-18 00:00:48
阅读次数:
108
Table of Contents 1. 比赛 1.1. 第一题 1.2. 第二题 1.3. 第三题 2. 比赛后 3. 总结 1 比赛 1.1 第一题 昨晚我还想出一道有关分数计算的题来着? 斜率,斜着不好做啊,要不,咱们转一转? 然而并不会旋转公式 最后还是乖乖拿了良心暴力分 1.2 第二题 一 ...
分类:
其他好文 时间:
2019-08-17 22:20:12
阅读次数:
133
归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(n·log n)。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。 采用分治法: 分割:递归地把当前序列平均分割成两半。 集成: ...
分类:
编程语言 时间:
2019-08-17 21:55:37
阅读次数:
118
1、什么是归并排序? 归并排序是属于分冶法的一种排序方式,归并排序将待排序的元素序列分成两个长度相等的子序列,为每一个子序列排序,然后再将他们合并成一个子序列。合并两个子序列的过程也就是两路归并。 2、时间复杂度和空间复杂度 归并排序是一种稳定的排序算法,一般用于对总体无序,但是各子项相对有序的数列 ...
分类:
编程语言 时间:
2019-08-17 14:34:55
阅读次数:
77