首页 > 编程语言 >【数据结构】排序 内部排序算法的比较和应用

【数据结构】排序 内部排序算法的比较和应用

时间:2023-08-21 22:22:18浏览次数:52  
标签:数据结构 直接插入 元素 算法 序列 子表 排序

1.简单复习一下前面学到的排序算法

三种插入排序:
直接插入: 依次将后面无序序列中头部的元素插入前面的有序序列中(找到插入位置,这个位置后面的元素一律后移)
折半插入: 相比直接插入只是用折半查找的方式查找插入位置,元素的移动操作不变
希尔排序: 把相隔一定步长d的元素放入一个子表中,分别对每个子表进行直接插入,进行多趟比较并不断缩小步长,直到步长为1时所有元素都在一个表中,直接进行插入排序。

两种交换排序:
冒泡排序: 进行多趟比较并局部交换,每次使一个元素处于正确位置上。
快速排序: 每趟选择一个元素作为枢轴,通过交替搜索+交换使小于枢轴的元素置于其左侧,大于枢轴的则置于其右侧。不断划分直到序列完全有序。

两种选择排序:
简单选择: 第i趟排序从L[i…n]中选择关键字最小的元素与L[i]交换,每次确定一个元素的最终位置。
堆排序: 将初始序列建成堆,每次输出堆顶元素并重新调整剩余元素成堆,不断输出堆顶以得到有序序列。

其他排序
归并排序: 以2路归并为例,初始时将整个序列看做n个长度为1的子表,趟将相邻的子表两两归并,最终得到一个有序的序列。
基数排序: 借助辅助队列进行多趟分配+收集,不基于比较和移动。

2.各算法的相关性能数据对比图

image

3.各算法的对比分析

4.在应用中如何选择合适的排序算法

标签:数据结构,直接插入,元素,算法,序列,子表,排序
From: https://www.cnblogs.com/satsuki26681534/p/17647243.html

相关文章