只讲众多排序算法中的一小撮,也是最经典的、最常用的:冒泡排序、插入排序、选择排序、归并排序、快速排序、计数排序、基数排序、桶排序。 ...
分类:
编程语言 时间:
2020-02-16 16:30:07
阅读次数:
77
[toc] 1. 介绍 1.1 排序算法分类 1. 内部排序: 数据记录在内存中进行排序 2. 外部排序: 因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存 1.2 关于时间复杂度 1. 平方阶($O(n^2)$)排序 各类简单排序: 直接插入、直接选择和冒泡排序 2. 线性对 ...
分类:
编程语言 时间:
2020-02-09 16:45:15
阅读次数:
95
10种排序算法的Java实现 分类 基于比较的排序算法 冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序,堆排序 非比较的排序算法 计数排序,桶排序,基数排序 稳定的排序算法 冒泡排序,插入排序,归并排序,计数排序,桶排序,计数排序 不稳定的排序算法 选择排序,希尔排序,快速排序,堆排序 ...
分类:
编程语言 时间:
2020-02-04 15:31:38
阅读次数:
69
归纳 1.时间复杂度为o(n^2) 冒泡排序 选择排序 插入排序 希尔排序 2.时间复杂度为o(nlogn) 快速排序 归并排序 堆排序 3.时间复杂度为线性排序 计数排序 桶排序 基数排序 ...
分类:
编程语言 时间:
2020-02-02 11:33:32
阅读次数:
66
很经典的搜索题,直接爆搜会卡在连续相同长度的木棍,可以先排序,预处理该长度不行直接跳下一长度木棍的位置 但此题特殊,木棍长度小于50,我们可以直接桶排序 还有就是关于回溯的理解: 我们写的dfs为的是判断ans是否可行,可行解自然已经被记录下来了,并且一路return即,若回溯到了相同or类似情况, ...
分类:
编程语言 时间:
2020-01-30 15:49:17
阅读次数:
104
区间问题: LeetCode56:已知多个区间,将这些区间有相交的区间进行合并,输出有序的合并结果。 排序问题: LeetCode75:荷兰国旗问题,多种解法,双指针法巧妙。 关于排序问题,面试肯定基本不考基本的排序,因为C++有sort,因此需要考虑一些特殊的情况:尤其是桶排序,计数排序,堆排序, ...
分类:
其他好文 时间:
2020-01-29 19:48:32
阅读次数:
76
基数排序和计数排序一样无需进行比较和交换,和桶排序一样利用分布和收集两种基本操作进行排序。基数排序是把每一个元素拆成多个关键字,一个关键字可以在每一个元素上同等的位置进行计数排序,一个元素拆成多个关键字可以看作是要进行几轮分桶,以一个元素最长的长度为准。 基数排序可以看成多(单)关键字的排序,可以想 ...
分类:
编程语言 时间:
2020-01-27 12:18:12
阅读次数:
65
一、冒泡排序(Bubble Sort) 二、选择排序(Selection Sort) 三、插入排序(Insertion Sort) 九、桶排序(Bucket Sort) ...
分类:
编程语言 时间:
2020-01-26 22:13:19
阅读次数:
121
虽然桶排序很方便,但是它非常浪费空间!!!在多大范围就要开多大的空间,seriously?! 所以,推出了一种新的算法:冒泡排序! 其思想就是比较相邻的两个元素,如果与题目不符就交换 如上图就是利用冒泡每次都与相邻的比较,最后在最后一位的就是最大的数,依次排列完成想法! 比较相邻的元素,如果前一个比 ...
分类:
编程语言 时间:
2020-01-24 17:31:35
阅读次数:
96
今天又是无趣的寒假之中的一天,但是,我准备好好开始学习算法了,我是想每天至少学习一种算法,也不知道能不能坚持下来,反正先试试,万一呢?! 世界上有好多东西都是需要排序的 栗子one:给你一串在十以内的数字进行降序排列 最好就是在输入时就进行归类,可以设一个a[11]的数组,放进去,最后再通过循环输出 ...
分类:
编程语言 时间:
2020-01-24 16:01:45
阅读次数:
128