![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
文章平均质量分 50
一颗随风而倒的墙头草
这个作者很懒,什么都没留下…
展开
-
基础算法之排序算法总结(python版)
常见排序算法包括有:冒泡,简单选择,直接插入,快排,归并排序,堆排序,希尔排序 目录 冒泡排序 思想: 复杂度分析: 选择排序 思想: 复杂度分析 直接插入排序 思想: 复杂度分析 希尔排序 思想 复杂度分析 快速排序 思想: 复杂度分析 快排优化 归并排序 思想 复杂度分析 归并优化 堆排序 思想 复杂度分析 总结 冒泡排序 思想:...原创 2018-09-02 10:49:53 · 318 阅读 · 0 评论 -
《剑指offer》【出现次数超过一半的数】(python版)
问题描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路: 1、排序,计算其中位数的出现次数,如果超过一半那么即为该数,否则不存在。 2、借鉴快排思想,如果一个数出现超过一半,那么如果以该数为枢轴,进行一次快排,那么这个...原创 2018-09-02 11:09:52 · 471 阅读 · 0 评论 -
《剑指offer》【最小的k个数】(python版)
问题描述: 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。 思路: 这个算是面试中常见题了,这里总结一下解决方法(注意判断k的合法性): 1、全部升序排序,输出前k个数字,最小时间复杂度为 2、由于不要求最小的k个数按序输出,参考快排中partition函数思想:每轮排序之后枢轴左边数字都比它小,右边数字都比它大...原创 2018-10-23 17:18:54 · 5150 阅读 · 2 评论