排序算法对比,步骤,改进
2021-07-13 04:07
标签:基数排序 读取 ges 第一个 二分插入排序 info 位置 数组 数列 图片镇楼 步骤: 1.依次选择一个待排序的记录, 2.依次与已经排好序的有序序列比较,并插入 3.持续每次对越来越少的元素重复上面的步骤,直到插完所有元素为。 改进: 二分插入排序,直接和有序序列的中间比较。 希尔排序。 希尔排序(又叫缩小增量排序,ShellSort) 步骤: 1.先将整个待排元素序列分割成若干个子序列 2.分别进行插入排序 3.然后依次缩减增量再进行插入排序 4.待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次插入排序 冒泡排序(BubbleSort) 步骤: 1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3.针对所有的元素重复以上的步骤,除了最后一个。 4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 改进: 快速排序。 快速排序(QuickSort) 步骤: 1.从数列中挑出一个元素,称为 "基准",重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。 2.递归地把小于基准值元素的子数列和大于基准值元素的子数列排序。 3.递归的最底部情形,是数列的大小是零或一,也就是永远都已经被排序好了。 选择排序(SelectSort) 步骤: 1.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 2.从剩余未排序元素中继续寻找最小(大)元素 3.放到已排序序列的末尾 4.以此类推,直到所有元素均排序完毕。 改进: 传统的简单选择排序,每趟循环只能确定一个元素排序后的定位。我们可以考虑改进为每趟循环确定两个元素(当前趟最大和最小记录)的位置,从而减少排序所需的循环次数。改进后对n个数据进行排序,最多只需进行[n/2]趟循环即可。 堆排序。 堆排序(HeapSort) 步骤: 1.将无需序列构建成一个堆,根据升序降序需求选择大顶堆或小顶堆; 2.将堆顶元素与末尾元素交换,将最大元素"沉"到数组末端; 3.重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整+交换步骤,直到整个序列有序 归并排序(MergeSort) 步骤: 1. 把长度为n的输入序列分成两个长度为n/2的子序列。 2. 对这两个子序列分别采用归并排序。 3. 将两个排序好的子序列递归合并成一个最终的排序序列。 桶排序(Bucket Sort) 步骤: 1. 创建等容量的桶数组,并将桶数组元素都初始化为0 2. 逐个遍历数组,将数组的值,作为桶数组的下标。数据被读取时,就将桶的值加1。 3. 将桶数组不为0的的值的key取出,数量为该key的值 改进: 基数排序。计数排序 基数排序(Radix Sort) 步骤: 1. 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。 2. 从最低位开始,依次进行一次排序。 计数排序(count sort) 步骤: 排序算法对比,步骤,改进 标签:基数排序 读取 ges 第一个 二分插入排序 info 位置 数组 数列 原文地址:https://www.cnblogs.com/ydymz/p/9542732.html插入排序(InsertSort)
下一篇:python-线程池