1 using System; 2 3 namespace ConsoleApp1 4 { 5 class Program 6 { 7 static int[] InsertArray(int[] bornArray) 8 { 9 for (int i = 0; i < bornArray.Leng ...
分类:
编程语言 时间:
2020-06-08 20:45:52
阅读次数:
59
希尔排序 概念 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 步骤 在网上看到一个很不 ...
分类:
编程语言 时间:
2020-05-27 23:20:40
阅读次数:
147
直接插入排序 将待排序列分为已排序序列和未排序序列,不断取出未排序序列中的元素放入已排序序列中合适的位置(指放之后已排序序列仍然有序)。下面的例子中,是一个待排的数组arr,先将0位置的元素认为是一个有序序列,1~len(arr)-1为无序,慢慢从1开始取元素加入有序部分,直到所有数组元素有序。 # ...
分类:
编程语言 时间:
2020-05-26 22:06:38
阅读次数:
70
插入排序 1.直接插入排序 默认 L(1) 有序,将 L(2) ~ L(n)依次插入到前面已经排好序的子序列中。 空间效率:O(1) ,就地排序 时间效率:比较和移动。最好情况下,有序,只需要比较不需要移动,只要 O(n)。 平均是 O (n2) 稳定性:稳定。 适用性:均可。 2.折半插入排序 主 ...
分类:
编程语言 时间:
2020-04-26 18:37:56
阅读次数:
60
介绍 直接插入排序算法是一种简单,直观且稳定的排序算法。直接插入排序的基本思路是将一个元素插入到已经排好序的序列中,从而得到一个新的有序序列。 原理 直接插入排序的原理就好比抓扑克牌一样,我们每新抓到一张扑克后,会扫描已经有序的扑克牌,以升序为例,从大到小扫描扑克牌,当出现扑克小于当前的新扑克时,将 ...
分类:
编程语言 时间:
2020-04-22 22:51:19
阅读次数:
78
1交换排序 1.1交换排序 冒泡排序(从前向后冒泡) 1.2交换排序 选择排序(选择排序第i个位置的元素跟后面的其他元素比较,找到比第i个元素小且最小的元素,与它进行交换) 2插入排序 2.1直接插入排序(带有标志位的) 2.2直接插入排序(不带有标志位) 2.3希尔排序 2.4归并排序 "参考博文 ...
分类:
编程语言 时间:
2020-04-21 13:22:09
阅读次数:
68
插入排序 直接插入排序,折半插入排序,2-路插入排序,希尔排序 快速排序 冒泡排序,快速排序(冒泡排序改进), 选择排序 简单选择排序,树形选择排序,堆排序 归并排序 基数排序 ...
分类:
编程语言 时间:
2020-04-20 13:41:41
阅读次数:
63
简述 插入排序是一种简单直观的排序方法,其基本思想在于每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。插入排序主要有三个算法:直接插入排序、折半插入排序和希尔排序。 直接插入排序 算法思想 直接插入排序的简单思想就是不断地将一个元素插入到一个有序的序列中, ...
分类:
编程语言 时间:
2020-04-16 19:17:00
阅读次数:
68
概念 同直接插入排序,多段后移。也叫增量排序。 基本思想 先取一个小于n的数d1作为第一个增量,把文件的全部记录分组 所有距离为d1的倍数的记录放在同一个组中 现在各组内进行直接插入排序 然后取第二个增量d2<d1重复上述的分组和排序,直至所取得增量 = 1,即将所有的记录放在同一组中进行直接插入排 ...
分类:
编程语言 时间:
2020-04-14 12:56:38
阅读次数:
81
概念 直接插入排序是一种最简单的排序方法,排序过程为:先将第一个元素看作是只有一个元素的有序子表,然后从第二个元素开始,将待排序元素依次插入到前面有序的子表中,直到全部排序完毕。在整个过程中,前面的元素是已经排序号的列表,后面的元素为待排序处理。 如下排序是将列表{ 7,3,5,4,6 }升序的排序 ...
分类:
编程语言 时间:
2020-04-14 12:15:52
阅读次数:
70