欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#插入排序原理讲解及代码块

程序员文章站 2022-03-24 13:53:28
...

1.原理讲解
插入排序原理讲解

2.代码块

    /// <summary>
    /// 直接插入排序算法
    /// </summary>
    public class InsertSortAlgorithm
    {
       static int index = 0;
        /// <summary>
        /// 插入排序
        /// </summary>
        /// <param name="array"></param>
        /// <returns></returns>
        public static int[] InsertSort(int[] array)
        {
            for (int i = 1; i < array.Length; i++)
            {
                int insertVal = array[i];
                int insertIndex = i - 1;
                while (insertIndex >= 0 && insertVal < array[insertIndex])
                {
                    array[insertIndex + 1] = array[insertIndex];
                    insertIndex--;
                    index++;
                }
                array[insertIndex + 1] = insertVal;
                printArray(array);
                Console.WriteLine("第" + (i) + "趟");
            }
            Console.Write("index:" + (index) + "次数");
            return array;
        }
        /// <summary>
        /// 打印数组
        /// </summary>
        /// <param name="array"></param>
        public static void printArray(int[] array)
        {
            if (array == null || array.Length <= 0)
            {
                return;
            }
            for (int i = 0; i < array.Length; i++)
            {
                Console.Write("[" + array[i] + "]" + ",");
            }
        }
    }