排序算法总结 您所在的位置:网站首页 labview排序方法 排序算法总结

排序算法总结

2023-05-19 15:35| 来源: 网络整理| 查看: 265

本文包含以下七种排序算法。

 一、插入排序

1.插入排序(Insert  Sort)的基本原理,每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象适当位置上,直到对象全部插入为止。   

2.算法步骤

①设待排序的记录存放在数组r[1····n]中,r[1]是个有序序列。

②循环n-1次,每次使用顺序查找法,查找r[i](i=2,···n)在已排好序的序列r[1···i-1]中的插入位     置,然后将r[i]插入表长为i-1的有序序列r[1···i-1],直到将r[n]插入表长为n-1的有序序列。说白了就是取出下一个元素,就把它放到前面排列好的序列中进行比较,进而确定位置  。

示例图:n=6,数组R的六个排序码分别为:17,3,25,14,20,9。

 二、希尔shell排序

1.基本思想:设待排序的数据对象有n个,首先取一个整数d  <  n作为间隔,将全部对象分为d个子序列,所有距离为d的对象放在同一个序列中,在每一个子序列中分别施行直接插入排序,然后缩 小间隔d,如取d=d/2。重复上述的子序列划分和排序工作,直到最后取d为1为止。

2.说白了就是将序列拆分成几个序列,然后各自进行排序,然后再拆分得细一点再排序,直到1.

 三、冒泡排序

1.基本思想:通过两两比较相邻的关键字,如果发生逆序,则进行交换,从而使关键字小的记录    如气泡一般向上漂浮,或者使关键字大的记录像石头一样逐渐向下坠落。

2.说白了就是每趟排序都以整个序列为单位,比较相邻的元素进行排序。

 四、快速排序

1.基本思想:取待排序的结点序列中某个结点的值作为控制值(一般是第一个),采用某种方法把这个结点放到适当的位置,使得这个位置的左边的所有结点的值都小于等于这个控制值,而这个位置的右边的所有结点的值都大于等于这个控制值。然后分别对这两个子序列重复实施上述方法。

2.说白了就是以第一个数组元素作为关键数据,赋给key,即key=A[0],从 j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换。  从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和     A[j]互换。

3.示例图:

 五、选择排序

 1.基本思想:在每一趟带排序的记录中选出关键字最小的记录,按照顺序排放在已经排好序的记     录序列的最后,直到序列全部有序。

2.比如求正向排序,第一次就是从序列中找最小的,然后交换位置,第二趟就找次小的,然后交换

3.

六、堆排序

1.基本思想:堆是完全二叉树。

①堆所对应的完全二叉树的根结点是元素序列中的值最小或最大元素。

②从根结点到每一个叶子结点的路径上的元素组成的序列都是按元素值递增或递减。

③堆可以采用一维数组来存储。

2.筛选法调整堆方法:

从r[2s]和r[2s+1]中选出关键字较大者,假设r[2s]的关键字较大,比较r[s]和r[2s]的关键字

①若r[s].key>=r[2s].key,说明以r[s]和r[2s]为根的子树已经是堆,不必做调整。

②若r[s].key



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有