这里是引用
1.插入排序:
(1).直接插入排序:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的序列
(2).折半插入排序:在将一个元素插入已排好序的数组的过程中,寻找插入点,将待插入区域的首元素设为a[low],末元素设为a[high],则轮比较时将待插入元素与a[mid]相比较,其中mid=(low+high)/2,如果比a[mid]
小,则选择a[low]到amid-1为新的插入区域,否则选择amid+1到a[high]为新的插入区域,直到low<=high不成立,即将此位置(包括low)之后所有元素后移一位,并将新元素插入a[low]
(折半插入排序是对直接插入排序的一种改进,减少了比较次数)
(3).二路插入排序:另设一个和待排数组arr同类型的数组brr,首先将arr[1]赋值给brr[1],并将brr[1]看成
是在排好序的序列中处于中间位置的记录,然后从arr中第二个记录开始依次插入到brr[1]之前或之后的有序序列
中。先将待插记录的关键字和brr[1]的关键字进行比较,若arr[i].key<brr[1].key,则将arr[i]插入到brr[1]之前的有序表中。反之,则将arr[i]插入到brr[1]之后的有序表中。在实现算法时,可将brr看成一个循环变量(数组首尾循环),并设两个指针first和final分别指示排序过程中得到的有序序列中的第一个记录和最后一个记录在brr中的位置。
(二路
数据结构排序算法摘要
本文详细介绍了各种排序算法,包括直接插入排序、折半插入排序、二路插入排序(希尔排序作为其改进版)、直接选择排序、堆排序、冒泡排序和快速排序,以及归并排序的自顶向下和自底向上实现方法。这些排序算法各有特点,适用于不同的场景,如希尔排序和快速排序在数据基本有序时效率较高,归并排序则以其稳定性著称。
摘要由CSDN通过智能技术生成