算法排序
陈广晗-Clare
这个作者很懒,什么都没留下…
展开
-
算法排序之冒泡排序
最近一段时间一段时间一直在学习算法排序,突然间就想把以前学的排序算法来写一写。 今天就先来说一下冒泡排序,下就然我们来看一下冒泡排序的几个特点和其中的一种算法实现:1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。3、针对所有的元素重复以上的步骤,除了最...原创 2018-09-16 16:17:08 · 201 阅读 · 18 评论 -
算法排序之基数排序
今天学习了一下基数排序,基数排序是属于分配式排序的一种算法。主要是有两种算法: 最高位优先(Most Significant Digit first)法,简称MSD法:先按k1排序分组,同一组中记录,关键码k1相等,再对各组按k2排序分成子组,之后,对后面的关键码继续这样的排序分组,直到按最次位关键码kd对各子组排序后。再将各组连接起来,便得到一个有序序列。最低位优先(Least Si...原创 2018-09-23 16:12:21 · 202 阅读 · 20 评论 -
时间复杂度大小比较
我们都知道,对于同一个问题来说,可以有多种解决问题的算法。尽管算法不是唯一的,但是对于问题本身来说相对好的算法还是存在的,这里可能有人会问区分好坏的标准是什么?这个要从「时效」和「存储」两方面来看。这里的「时效」是指时间效率,也就是算法的执行时间,对于同一个问题的多种不同解决算法,执行时间越短的算法效率越高,越长的效率越低;「存储」是指算法在执行的时候需要的存储空间,主要是指算法程序运行的时候...原创 2018-10-28 21:02:14 · 47612 阅读 · 27 评论 -
时间复杂度比较(二)
上次我们说了说时间复杂度的大小,今天我们就来分析一下这些时间复杂度1.常数函数n = 100 # 1 次sum = (1 + n) *n / 2 # 1 次print(sum) # 1 次上述算法程序的 f(n) = 3,可能有人看到这会说那么时间复杂度就是 O(f(n)) = O(3),其实这个是错的,这个函数的时间复杂度其实是 O(1)。这个对于初学者来说是很难...原创 2018-11-04 18:25:58 · 2091 阅读 · 11 评论 -
算法排序之空间复杂度
前面有几篇博客说了说时间复杂度的分析,今天来说一说空间复杂度吧 下面这个是我前一段时间看的一篇有关于空间复杂度的一片文章,感觉写的很好今天来给大家分享一下。 类比于时间复杂度的讨论,一个算法的空间复杂度是指该算法所耗费的存储空间,计算公式计作:S(n) = O(f(n))。其中 n 也为数据的规模,f(n) 在这里指的是 n 所占存储空间...原创 2018-11-25 19:10:28 · 609 阅读 · 24 评论