排序算法说明: (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