1. 算法概念 algorithm:一个计算过程,解决问题的方法 程序设计=数据结构+算法 输入→算法→输出 数据结构就是关系 2. 时间复杂度 用来估计算法运行时间的一个式子,一般来说时间复杂度高的算法比复杂度低的算法慢 2.1 一些例子: 2.2 时间复杂度排序 2.3 快速判断算法复杂度 确定 ...
分类:
编程语言 时间:
2019-04-22 15:19:51
阅读次数:
181
【题目】: 给定一个无序的整型数组arr,找到其中最小的k个数 【要求】: 如果数组arr的长度为N,排序之后自然可以得到最小的k个数,此时时间复杂度与排序的时间复杂度相同,均为O(NlogN)。本题要求读者实现时间复杂度为O(Nlogk)和O(N)的方法 ...
分类:
编程语言 时间:
2018-11-19 13:28:57
阅读次数:
124
排序方法 最坏时间复杂度 最好时间复杂度 平均时间复杂度直接插入 O(n2) O(n) O(n2)简单选择 O(n2) O(n2) O(n2)起泡排序 O(n2) O(n) O(n2)快速排序 O(n2) O(nlog2n) O(nlog2n)堆排序 O(nlog2n) O(nlog2n) O(nl ...
分类:
编程语言 时间:
2018-09-22 19:40:42
阅读次数:
182
算法和时间复杂度;排序:冒泡排序、选择排序、插入排序、快速排序、堆排序、归并排序、希尔排序、heapq模块
分类:
编程语言 时间:
2018-07-31 17:23:26
阅读次数:
171
思想:每一趟将一个记录插入到已经排好序的一组记录的适当位置上,知道所有待排序记录都插入为止。 时间复杂度: 排序的基本操作为:比较两个关键字和移动。最好的情况:正序。比较1次,不移动。最坏情况:逆序。比较i次(i-1加哨兵),移动i+1次(i-1加将待插入的移到监视哨加从监视哨移出)。对于整个排序过 ...
分类:
编程语言 时间:
2017-12-04 00:01:43
阅读次数:
171
各类排序算法的时间复杂度 排序算法概述: 排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。 内排序可以分为以下几类: (1)、插入排序:直接插入排序、二分法插入排序、希尔排序。 (2)、选 ...
分类:
编程语言 时间:
2017-11-28 11:43:16
阅读次数:
161
什么是算法 就是一个计算的过程,解决问题的方法 用到知识点 递归 调用自身 有结束条件 下次执行相应的复杂度要减少 时间复杂度排序(按效率排序) O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n2logn)<O(n3) 判断时间复杂度 1.循环减半的过程就是O(logn) 2 ...
分类:
编程语言 时间:
2017-08-24 20:00:35
阅读次数:
206
基础知识的累积罢了。常见的时间复杂度排序:O(1)时间复杂度最小,常数阶;O(logn)1时,logn始终在n下方O(n)1时都不需要思考;O<O,后者是翻倍啊,前者做不到啊,想一想10的立方和11的立方的差别。O)<O(n!),想想不只是翻一倍了,而是越翻越多。所以:O(1)< O(logn)<O...
分类:
其他好文 时间:
2015-04-21 22:10:36
阅读次数:
150
算法定义:解决特定问题的求解步骤的描述.算法特性:有穷性、确定性、可行性、输入、输出算法的设计要求:正确性、可读性、健壮性、高效率和低存储量需求算法度量方法:事后统计方法(不科学)、事前分析估算方法函数的渐近增长:给定两个函数f(n)和g(n),如果存在一个整数N,..
分类:
编程语言 时间:
2014-12-03 01:51:10
阅读次数:
167