算法学习技巧 先问自己几个问题 什么是什么? 为什么要这么写? 稳定性? 时间复杂度? 冒泡排序 是什么:首先拿到第1个元素,和它第二个比较,较大的放右边;第二个与第三个比,一直重复下去 ,最后一个就是最大的数 为什么:总共有n个数,主要是控制轮数,第二个是控制次数。比的次数 为:n-1 稳定性 时 ...
分类:
编程语言 时间:
2020-02-25 00:36:02
阅读次数:
69
看算法第四版的希尔排序时,打算把例中的String数组换成int数组,却出现了上面的问题。最后在StackOverflow找到答案原代码: package sort; import edu.princeton.cs.algs4.In; public class Shell{ public stati ...
分类:
移动开发 时间:
2020-02-24 16:58:16
阅读次数:
87
直接插入、选择排序、冒泡排序、快速排序、……归并排序、基数排序、希尔、堆排序、 直接插入: 思想是:1、将数据序列分成两部分,前一部分是有序的,后面一部分是无序的. 2、将无序变有序,首先从第一开始,然后第一,第二比较后排序,此时这两位就是有序的了;然后从无序的队列中取出第三位和第二位比较,然后他们 ...
分类:
编程语言 时间:
2020-02-23 16:32:03
阅读次数:
94
################## 希尔排序 ######################## """ 希尔排序 希尔排序就是插入排序的一种改进版本, 算法的步骤 把一个序列不视为一个整体,而是视为多个子序列, 假设间隔是gap=4 alist = [54,26,93,17,77,31,44,55 ...
分类:
编程语言 时间:
2020-02-23 09:48:16
阅读次数:
80
排序 参考 "五分钟学算法" 复杂度比较 时间复杂度 O(n2) 各种简单的排序:直接插入、直接选择、冒泡 O(nlog2n) 快速排序、堆排序、归并排序 O(n1+$\lambda$),希尔排序 线性阶O(n)排序,基排序、桶、箱排序 稳定性 稳定排序:冒泡、插入、归并、基数排序 不稳定:选择、快 ...
分类:
编程语言 时间:
2020-02-22 13:40:19
阅读次数:
86
希尔排序是基于插入排序的一个优化。可以使平均时间复杂度减少为O(n * log2(n))。 ...
分类:
编程语言 时间:
2020-02-19 12:57:43
阅读次数:
76
1. 引入 — 简单插入排序存在的问题 现在有这么一个数组,arr = {2,3,4,5,6,1};这时需要插入的数 1(最小),过程是: {2,3,4,5,6,6} → {2,3,4,5,5,6} → {2,3,4,4,5,6} → {2,3,3,4,5,6} → {2,2,3,4,5,6} → ...
分类:
编程语言 时间:
2020-02-18 20:19:35
阅读次数:
71
一、基本介绍 ? 希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更加高效的版本,也称为缩小增量排序。 ? 在排序过程中,把待排序数据按照一定增量分组,对每组数据使用直接插入排序算法进行排序;随着增量的减小,每组的数据越来越多;当增量减少为 1 时,整个数据被分为一组,算法终止,排序完成 ...
分类:
编程语言 时间:
2020-02-17 19:55:50
阅读次数:
87
https://www.runoob.com/w3cnote/radix-sort.html 算法系列 1.0 十大经典排序算法 1.1 冒泡排序 1.2 选择排序 1.3 插入排序 1.4 希尔排序 1.5 归并排序 1.6 快速排序 1.7 堆排序 1.8 计数排序 1.9 桶排序 1.10 基 ...
分类:
编程语言 时间:
2020-02-17 12:27:17
阅读次数:
57