三九宝宝网宝宝教育计划总结

排序算法的排序算法

02月22日 编辑 39baobao.com

[大小排序游戏]活动目标 1、通过活动,正确获得大小、差异变化的知觉。 2、在活动中能大胆进行尝试。 3、体验数学游戏的乐趣。 活动准备 1、课件-比较 2、各种方体玩具、包装盒 活动过程 一...+阅读

排序的算法有很多,对空间的要求及其时间效率也不尽相同。下面列出了一些常见的排序算法。这里面插入排序和冒泡排序又被称作简单排序,他们对空间的要求不高,但是时间效率却不稳定;而后面三种排序相对于简单排序对空间的要求稍高一点,但时间效率却能稳定在很高的水平。基数排序是针对关键字在一个较小范围内的排序算法。

插入排序

冒泡排序

选择排序

快速排序

堆排序

归并排序

基数排序

希尔排序 插入排序是这样实现的:

1、首先新建一个空列表,用于保存已排序的有序数列(我们称之为有序列表)。

2、从原数列中取出一个数,将其插入有序列表中,使其仍旧保持有序状态。

3、重复2号步骤,直至原数列为空。

插入排序的平均时间复杂度为平方级的,效率不高,但是容易实现。它借助了逐步扩大成果的思想,使有序列表的长度逐渐增加,直至其长度等于原列表的长度。

插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..i-1] 都已经排好序,本趟需要找到 i 对应的元素 x 的正确位置 k ,并且在寻找这个位置 k 的过程中逐个将比较过的元素往后移一位,为元素 x “腾位置”,最后将 k 对应的元素值赋为 x ,一般情况下,插入排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1)。 冒泡排序是这样实现的:

1、从列表的第一个数字到倒数第二个数字,逐个检查:若某一位上的数字大于他的下一位,则将它与它的下一位交换。

2、重复1号步骤,直至再也不能交换。

冒泡排序的平均时间复杂度与插入排序相同,也是平方级的,但冒泡排序是原地排序的,也就是说它不需要额外的存储空间。 选择排序是这样实现的:

1、设数组内存放了n个待排数字,数组下标从1开始,到n结束。

2、初始化i=1

3、从数组的第i个元素开始到第n个元素,寻找最小的元素。

4、将上一步找到的最小元素和第i位元素交换。

5、i++,直到i=n-1算法结束,否则回到第3步

选择排序的平均时间复杂度也是O(n^2)的。

举例:

564

比如说这个,我想让它从小到大排序,怎么做呢?

第一步:从第一位开始找最小的元素,564中4最小,与第一位交换。结果为465

第二步:从第二位开始找最小的元素,465中5最小,与第二位交换。结果为456

第三步:i=2,n=3,此时i=n-1,算法结束

完成 平均时间复杂度

插入排序 O(n^2)

冒泡排序 O(n^2)

选择排序 O(n^2)

快速排序 O(n log n)

堆排序 O(n log n)

归并排序 O(n log n)

基数排序 O(n)

希尔排序 O(n^1.25)

以下为关联文档:

请问一下有谁能总结数据结构中排序章内介绍各种算法的时间复杂1.插入排序:每次将一个待排的记录插入到前面的已经排好的队列中的适当位置。 ①.直接插入排序 直接排序法在最好情况下(待排序列已按关键码有序),每趟排序只需作1次比较而不需要...

几种经典排序算法优劣比较的C程序实现一、低级排序算法1.选择排序 (1)排序过程 给定一个数值集合,循环遍历集合,每次遍历从集合中选择出最小或最大的放入集合的开头或结尾的位置,下次循环从剩余的元素集合中遍历找出...

数据结构堆排序算法#includevoid adjust(int *list,const int root,const int n); void HeapSort(int *list,const int n) { int i=0; for(i=n/2;i>=1;i--) adjust(list,i-1,n); int t=list[n]...

C语言中的排序方法探索根据自己的学习体会总结各种排序方法的可能会有些小错误,你自己可以根据需要进行改动,比如你可以直接定义一组数,就不需要随机产生数了,我想你应该改得了,呵呵,代码如下:#include#include#include#include#includeusingn...

吉他的cdefgab调的高低排序问题首先要知道CDEFGAB,这七个字母是乐音的音名,表达着特定音高的乐音。比如A音,国际上规定为国际标准音高,这个标准音高的音频为440Hz。以这个音高为标准,按十二平均律,可以计算出其...

高分求算法:关于井字棋三子棋的算法!面谈感谢!“井字棋”游戏(又叫“三子棋”),是一款十分经典的益智小游戏,想必很多玩家都有玩过。“井字棋”的棋盘很简单,是一个3*3的格子,很像中国文字中的“井”字,所以得名“井字棋”。“...

棋类游戏的算法有哪些棋类游戏的算法有哪些 棋类游戏通常包含三大要素:棋盘、棋子和游戏规则,其中游戏规则又包括胜负判定规则、落子的规则以及游戏的基本策略。下面我来给大家讲讲各类棋类游戏的...

迅雷笔试题算法这是个递归问题:设N个台阶有f(N)中上法:f (1)=1;f (2)=2;f (3)=4;则当n>3时:f(n)=f(n-1) + f(n-2) + f(n-3)按这个公式计算,写个递归算法就行了。原理:N = (N-1) + 1;最后一个台阶...

什么是杰克逊算法具体步骤为: 第一步,取出最小工时t12=2。如该工时为第一工序的,则最先加工;反之,则放在最后加工。此例是A工件第二工序时间,按规则排在最后加工。 第二步,将该已排序工作划去。 第...

推荐阅读
图文推荐