常喝水
常喝水
全部文章
分类
未归档(1)
求职(4)
知识积累(1)
算法(10)
项目(4)
题解(69)
归档
标签
去牛客网
登录
/
注册
学习日记
一房二人三餐四季,星辰大海,雅俗共度
TA的专栏
6篇文章
1人订阅
算法求职
6篇文章
6957人学习
全部文章
(共10篇)
计数排序、桶排序
计数排序适用于一定范围的整数排序。在取值范围不是很大的情况下,它的性能在某些情况甚至快过那些O(nlogn)的排序,例如快速排序、归并排序。 计数排序原理:找到给定序列的最小值与最大值创建一个长度为最大值-最小值+1的数组,初始化都为0然后遍历原序列,并为数组中索引为当前值-最小值的值+1此时数组中...
排序算法
2020-09-16
0
653
21. 调整数组顺序使奇数位于偶数前面
考虑相对位置不变 注意要保持数组的稳定性 当数字为偶数时,把该数字接到列表的后面 class Solution: def reOrderArray(self, array): # write code here i = 0 move = ...
剑指offer
数组
排序算法
2020-02-10
0
693
51. 数组中的逆序对
利用归并排序的思想: 在数组分裂的过程中,把left和right从第i个位置开始进行比较,哪个小就把它加入merged中,由于此时left和right是分别有序的,如果left[i]>right[j],证明left[i:]都大于right[j],此时的逆序对要加len(left)-i 例如...
剑指offer
排序算法
查找
2019-12-25
8
1010
40. 最小的k个数
https://blog.nowcoder.net/n/abe0690b7ed743199af1f708da1fdb37复习的时候要再好好想一下排序算法利用快排 class Solution: def GetLeastNumbers_Solution(self, tinput, k): ...
剑指offer
数组
查找
排序算法
2019-12-23
0
788
快速排序
思路分析:快速排序采用双向查找的策略,每一趟选择当前所有子序列中的一个关键字作为枢纽轴,将子序列中比枢纽轴小的前移,比枢纽轴大的后移,当本趟所有子序列都被枢轴按上述规则划分完毕后将会得到新的一组更短的子序列,他们将成为下趟划分的初始序列集。 算法分析:分裂是O(log n),移动是O(n),综合起来...
排序算法
2019-12-05
0
813
归并排序Merge Sort
动画演示:https://www.runoob.com/python3/python-merge-sort.html 算法分析:将归并排序分为两个过程来分析:分裂和归并。 分裂的过程,借鉴二分查找中的分析结果,是对数复杂度,时间复杂度是O(log n) 归并的过程,相对于分裂的每个部分,其所有数...
排序算法
2019-12-05
0
907
谢尔排序Shell Sort
谢尔排序以插入排序作为基础 子列表的间隔一般从n/2开始 大致介于O(n)和O(n^2)之间,如果将间隔保持在 (1,3,5,7,15,31等等),谢尔排序的时间复杂度约为O( ) def shellSort(alist): sublistcount = len(alist)//2 ...
排序算法
2019-12-05
0
829
插入排序
比对复杂度是O(n^2) 假设数列第一个元素为已排序数列,剩余数列为未排序将待排序元素挨个插入到已排序数列中每次插入都必须保证数列是有序的,即通过比较和移动有序数列中的元素,将元素插入到合适的位置 思路:如同玩扑克牌一样,每次摸牌都将它与手中的牌比较,始终将牌放在比它大的牌前面,比它小的牌后面。这样...
排序算法
2019-12-04
0
526
选择排序
选择排序对冒泡排序进行了改进,每趟都使当前最大项就位 选择排序的时间复杂度比冒泡排序稍优:对比次数是O( ),交换次数减少为O(n) def selectionSort(alist): for fillslot in range(len(alist)-1,0,-1): po...
排序算法
2019-12-04
0
573
冒泡排序
关于各种排序算法的动画演示 https://visualgo.net/zh/sorting?slide=1 冒泡排序 比对的次数复杂度是O(n^2),交换的时间复杂度也是O(n^2) 优势:无需额外的存储空间,可以在链表上操作 原理:比较两个相邻的元素,将值大的元素交换到右边def bubb...
排序算法
2019-12-04
0
700