直接插入排序法

来源:互联网 发布:gg是什么意思网络用语 编辑:程序博客网 时间:2024/04/26 04:16

直接插入排序法,就是在有序数列区中插入一个无序数,以下面代码为例。

  static void zjjs(int[] a)
        {
            for (int i = 2; i < a.Length; i++)
            {
                if (a[i] < a[i - 1])
                {
                    a[0] = a[i];
                    a[i] = a[i - 1];
                    int j;
                    for (j = i - 2; a[0] < a[j]; --j)
                    {
                        a[j + 1] = a[j];
                    }
                    a[j + 1] = a[0];
                }
            }
        }

在定义一个一位数组a来存放一些数据时,是以下标1开始的,而数组的第一个元素的作用也就是用来存放一个临时的数据。

已知有序数列,无序数(设为x)与有序数列的最后一个数比较(即最大的那个数),x大,则有序数列增加一个元素,继续下一个无序数的插入。

x若为小,则啊a【0】来保存这个数,并将有序数的最大的那个数后移一位,再依次由大到小用有序数列中的数与a【0】作比较,

a【0】大,则跳出循环,并将a【0】插入当前位置,a【0】小,则继续比较。

这样数组中的数就会成为一个新的数列(顺序由小到大)

1 0
原创粉丝点击