来源:<啊哈算法>5个数字53528需要排序.用到了桶排序思路l=[0,0,0,0,0,0,0,0,0,0]
p=[5,3,5,2,8]
foriinrange(10):
forjinp:
ifi==j:
l[i]+=1
printl
new_l=[]
foriinrange(10):#核心点在这里
ifl[i]!=0:
forjinrange(l[i]):
new_l.append(i)
printnew_l简化成:对一下,..
分类:
编程语言 时间:
2016-06-07 11:21:11
阅读次数:
171
排序算法可谓数据结构模块中的重中之重,常见的哈希表,二叉树,搜索树/平衡树,位图等数据结构只是处理实际问题的抽象方法,实际在处理接受或生成的数据集时,排序算法显得尤其重要,排序算法家族很庞大,其中包括了冒泡排序,选择排序,插入排序,堆排序,快速排序,归并排序,基数排序,计数排序,希尔排序,箱排序,树型排序等众多算法,每种排序都有各自的特性,没有好坏之分,只有在特定的场景使用合适的排序算法才是上策,单纯的来比显得太过绝对,没有可比性。因为实际需求及各方面条件的限制使得排序算法的可选范围往往只缩小到某一种或某几...
分类:
编程语言 时间:
2016-06-07 06:37:23
阅读次数:
291
计数排序:最差运行时间复杂度:,平均:,k是数字范围区间长度,n是数组长度。 这是一种稳定的线性时间排序 如果要排序的内容已知其范围,比如要排序的所有数字都是1~100之间的数(使用计数排序是最好的选择) KEY-IDEA:由于计数的范围已经确定,因此,可以开辟一个额外的空间来记录所有数字出现的次数 ...
分类:
编程语言 时间:
2016-06-05 18:56:32
阅读次数:
263
排序算法有很多种,大家最先想到的大多是基于比较的排序吧,像冒泡排序、选择排序、插入排序都属此类。这些都是很容易想到的算法,它们的思想简单。但都有个缺点,就是比较慢,时间复杂度从O(n2)到O(Nlog(N))不等,在数据量小的时候还好,但应付大数据时就心有余而力不足了。 那有没有更快的算法呢?答案是 ...
分类:
编程语言 时间:
2016-06-04 21:59:29
阅读次数:
237
在这里我介绍四个使用表解决实际中的问题的例子,分别是: 1.多项式的加法和乘法运算; 2.基数排序; 3.表的游标实现; 4.多重表在学生选课系统中的应用。(可选) (1)多项式的加法和乘法: 多项式的加法和乘法有两个实现方式,第一个是用数组来实现,它适合大多数项都有的稠密的多项式;第二个是用链表来 ...
分类:
编程语言 时间:
2016-06-02 21:51:10
阅读次数:
337
今天,我们来总结一下排序算法:
排序分为冒泡排序,选择排序,插入排序,希尔排序,合并排序,快速排序,堆排序,基数排序等等,本篇文章我来详细解析冒泡排序,选择排序,直接插入排序。冒泡排序首先说说最简单的冒泡排序:从老谭那本书就开始认识冒泡排序了,这种方法简单易懂:
这张动图可以解释冒泡排序。
接下来,看代码的实现:#include
#include
#i...
分类:
编程语言 时间:
2016-06-02 13:47:13
阅读次数:
191
一,介绍 ①什么是桶排序? 桶排序是在已经数据的范围的条件下,创建若干个桶,根据相应的比较规则将待排数据落入各个对应的桶中,最后扫描 桶 来实现排序。 ②桶排序需要的附加条件 数据的范围已知。 比如,输入整数数据 A(1) A(2)......A(n-1) A(n),它们都是由小于M的整数组成,此时 ...
分类:
编程语言 时间:
2016-05-27 16:18:50
阅读次数:
198
归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。(如果..
分类:
编程语言 时间:
2016-05-26 11:45:24
阅读次数:
281
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 本文将依次介绍上述八大排序算法。 算法 ...
分类:
编程语言 时间:
2016-05-24 22:33:49
阅读次数:
238
计数排序计数排序的原理设被排序的数组为A,排序后存储到B,C为临时数组。所谓计数,首先是通过一个数组C[i]计算大小等于i的元素个数,此过程只需要一次循环遍历就可以;在此基础上,计算小于或者等于i的元素个数,也是一重循环就完成。下一步是关键:逆序循环,从length[A]到1..
分类:
编程语言 时间:
2016-05-24 19:18:17
阅读次数:
229