直接插入排序法

    xiaoxiao2023-03-24  5

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

      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】小,则继续比较。

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

    转载请注明原文地址: https://ju.6miu.com/read-1201979.html
    最新回复(0)