``` import java.util.ArrayList; import java.util.List; / 排序算法主类 @author eric / class SortArray { / 【插入排序】 基本思想: 在要排序的一组数中,假设前面(n 1) [n =2] 个数已经是排好顺序的, ...
分类:
编程语言 时间:
2018-12-14 10:21:50
阅读次数:
293
(一)时间复杂度为O(N²),空间复杂度为O(1)的排序 冒泡排序 选择排序 插入排序 (二)时间复杂度为O(NlogN)的排序 归并排序,空间复杂度为O(N) 快速排序,空间复杂度为O(logN)~O(N) 堆排序,空间复杂度为O(1) 经典堆排序实现使用了递归的方式(函数栈),空间复杂度为O(l ...
分类:
编程语言 时间:
2018-12-12 15:01:34
阅读次数:
233
#include <stdlib.h> #include <stdio.h> #define MAX 50 int slist[MAX]; /*待排序序列*/ void insertSort(int list[], int n); void createList(int list[], int *n ...
分类:
编程语言 时间:
2018-12-11 21:45:10
阅读次数:
256
#include <stdio.h> #include <stdlib.h> void ShellSort(int a[], int length) { int increment; int i,j; int temp; for(increment = length/2; increment > 0 ...
分类:
编程语言 时间:
2018-12-08 19:14:44
阅读次数:
214
希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进 ...
分类:
编程语言 时间:
2018-12-03 11:58:00
阅读次数:
181
一.希尔排序shellsort也称缩小增量排序,是对插入排序算法的改进,其工作原理是定义一个间隔序列来表示排序过程中进行比较的元素之间有多远的间隔,每次将具有相同间隔的数分为一组,进行插入排序,大部分场景中,间隔是可以提前定义好的,也可以动态生成。在较大的数据集上,希尔排序对于插排的优化效果是非常明显的。./***希尔排序示例代码*/functionshellSort(gaps,arr){for(
分类:
编程语言 时间:
2018-11-29 12:21:20
阅读次数:
200
一、常见的十种排序算法: 冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序、桶排序、基数排序 1.【知识框架】 补充:内部排序:整个排序过程完全在内存中进行。 外部排序:由于待排序记录数据量太大,内存无法容纳全部数据,需要借助外部存储。 外部排序:由于待排序记录数据量太大 ...
分类:
编程语言 时间:
2018-11-29 01:28:45
阅读次数:
222
排序算法 排序算法中包括:简单排序、高级排序 简单排序 简单排序常用的有:冒泡排序、选择排序、插入排序 冒泡排序代码如下: 冒泡排序方法速度是很慢的,运行时间为O(N²)级。选择排序改进了冒泡排序,将必要的交换次数从O(N²)减少到O(N),不幸的是比较次数依然是O(N²)级。然而,选择排序依然为大 ...
分类:
编程语言 时间:
2018-11-25 16:29:23
阅读次数:
246
前言 由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列 ——-《图解数据结构》,主要使用动画来描述常见的数据结构和算法。本系列包括十大排序、堆、队列、树、并查集、图等等大概几十篇。 希尔排序 希尔排序,也称递减增量排序算法,是插入 ...
分类:
编程语言 时间:
2018-11-25 11:54:08
阅读次数:
148