首页 > 编程知识 正文

冒泡排序和别的算法的比较,js中的冒泡排序原理

时间:2023-05-04 06:50:32 阅读:14189 作者:1680

排序算法说明: (1)对于评述算法优劣术语的说明

稳定原本在b之前,如果a=b,则排序后a也在b之前;不稳定原本在b之前,如果a=b,则排序后a可能出现在b之后;

http://www.Sina.com/http://www.Sina.com /数据太大,将数据放入磁盘,排序通过磁盘和内存数据传输进行;

内排序:执行一个算法所需的时间。 运行外排序:程序所需的内存大小。

时间复杂度

空间复杂度

1 .通过鼓泡排序:

分析:1.比较两个相邻的因素,如果前面的因素大于后面的因素,交换位置。

2 .第一回合的时候,最后一个因素应该是最大的。

3 .用步骤1的方法进行相邻两种元素的比较。 此时,最后的元素已经是最大的,所以最后的元素可以不进行比较。

2 .快速排序:

分析:快速排序是气泡排序的一个改进,它在第一次排序时将数据分为两部分,一部分小于其他部分的所有数据。 然后递归调用,在两侧执行快速排序。

3 .插入排序:

分析:

)从第一个要素开始,该要素被认为已经排序

)2)取出下一个元素,在已排序的元素数组中从后向前扫描

)3)如果元素(已排序)大于新元素,则将该元素移动到下一个位置

)4)重复步骤3,直到找到排序后的要素在新元素以下的位置

)5)将新要素插入以下位置

(6)重复步骤2

2.2点搜索:

解析:二分搜索,也是折半搜索。 首先要找到中位数,通过与中位数进行比较,把大的放在左边,把小的放在左边。 然后在两侧寻找中央值,继续以上操作直到找到位置。

(1)递归方法

)2)非递归方法

4 .选择排序:

分析器:首先在未排序序列中找到最小(最大)元素,并将其存储在排序序列的开始位置。 接下来,从剩馀的未排序元素中继续查找最小(最大)元素,并将其放置在已排序序列的末尾。

这样,等待所有元素都被排序。

5 .希尔排序:

分析:首先将排序对象记录序列整体分割为几个子序列,分别直接插入进行排序

6 .合并排序:

分析:合并排序是一种稳定的排序方法。 综合有序子序列,得到完全有序序列; 也就是说,使每个子序列有序,然后使子序列的段之间有序。

7 .堆栈排序:

分析:堆栈排序(Heapsort )是一种利用名为堆的数据结构设计的排序算法。 堆是几乎完全的二叉树结构,同时满足堆的性质。 也就是说,子节点的键值和索引总是

小于(或大于)父节点。

8 .计数排序:

要分析:计数排序,请使用附加数组c。 第I个元素是数组a的值等于I的元素数。 然后,根据数组c,将a的元素排列在正确的位置。 只能对整数进行排序。

9 .桶排序:

分析器:将数据分成有限数量的桶,并按桶排序,假设输入数据遵循均匀分布。 您可以使用其他排序算法,也可以递归使用桶排序继续进行排序

10 .基数排序:

分析:基数排序按低位排序收集; 按高位顺序排序后收集; 按顺序类推,直到最高位。 某些属性具有优先级,可以按优先级从低到高排序,也可以按优先级从高到低排序

优先顺序。 最后的顺序是优先顺序从高到低的顺序,优先顺序从高到低的顺序相同,是优先顺序从低到高的顺序。 基数排序基于单独排序,是单独收集的,因此是稳定的。

(2)排序算法图片总结:

这三种排序算法都利用桶的概念,但桶的使用方法有明显差异:

基数排序:根据键值中的每个数字分配桶数排序。 每个桶只存储一个键值的桶排序。 每个桶保存一定范围的数值

转载于:https://www.cn blogs.com/beli/p/6297741.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。