算法
yan_jin_feng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
计算复杂度
求极限n->无穷大:表达式n:–>无穷大表达式1/n:—>0(2n2+2n3+n)/n^32/n+2+1/n^2n–》无穷大的时候:2/n–》01/n^2-》02–》常数—》此算法的时间复杂度是n^3时间复杂度的概念:执行的次数和同数量级(n最高次方数)取商是常数,那么同数量级就是这个算法的时间复杂度时间复杂度的计算过程:1 算出每一行语句执行的次数...原创 2019-08-02 09:30:45 · 11121 阅读 · 0 评论 -
冒泡排序
1、冒泡排序核心算法:在数组x[n]中,从第一个数开始,拿x[i]和后面的数x[i+1]进行比较,如果x[i]比后面的大,就交换两个数的位置,这样遍历一遍数组后,把最大的数据排在了最后面,之后继续循环排剩下的n-1个数,直到完成所有的排序,由于每次都是把最大的排到最后面,就好像冒泡一样,故取名冒泡排序。详细讲解:里层for循环的逻辑:第一步:从第一个元素开始,与第二个元素比较,如果小...原创 2019-08-02 09:32:22 · 140 阅读 · 0 评论 -
插入排序
2、插入排序关于插入排序,其算法的核心算法是:将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数。即:序列的第一个元素,肯定是有序的,把第二个元素和第一个元素相比,插入到合适的位置,这样前两个元素就有序了,接着,把第三个元素插入到前面包含两个元素的有序列表中,以此类推,直至插完第n个数据。核心代码如下:#encoding=utf-8def insertSort(...原创 2019-08-02 09:53:58 · 182 阅读 · 0 评论 -
选择排序
关于选择排序,其算法的核心思想是:固定位置,选择元素,即:先从序列中,找到最小的元素,放在第一个位置,之后找到第二小的元素,放在第二个元素,以此类推,就可以完成整个排序工作了。核心代码如下:def selectSort(listx):xLen = len(listx)for i in range(xLen): min = i #遍历完成之后,min就指向了最小元素的...原创 2019-08-02 09:54:56 · 202 阅读 · 0 评论 -
快速排序
关于快速排序,核心思想如下:选取最后一个节点作为中点,之后遍历前面的节点,从a[0]~a[n-1],如果前面的节点,比最后一个节点大,则位置不变,如果比最后一个节点小,则交换他们的当前节点和i+1 的值,直到遍历完成之后,交换i+1 和最后一个节点的数据,这样i+1 的位置就是整个数组的中点,对于下面的子数组,递归下去,就可以得到一个排好序的数组。核心代码如下:def insertSort(...原创 2019-08-02 09:55:52 · 243 阅读 · 0 评论
分享