C#插入排序算法

不羁的心 提交于 2020-03-26 19:10:35

原理:

1、第一个元素可以看做是已经排序好的小数组,第二个元素和这个小数组比较,放到合适的位置,组成新的已排序的小组数。
2、第三个元素在和前面组成的新的小数组比较,决定排在什么位置,如此循环,直到结束

   public static void insertatesort()
        {
            int[] array = new int[6] { 56, 45, 85, 13, 85, 46 };  //定义一个数组


            for (int i = 1; i < array.Length; i++)   //外层循环,先将数组第二个元素作为基数,再将数组第三的元素作为基数
            { 
                int t = array[i];    //将一个默认的基数赋值给t,这里首先是默认下标为0的数字为基数
                int j = i;          //记录当前基数下标
                while ((j > 0) && (array[j - 1] > t))  //判断前一个元素是否大于当前基数,如果大于则满足条件,执行循环体
                {
                    array[j] = array[j - 1];//交换顺序    如果大于的话将前一个元素放在当前基数的位置
                    --j;            //下标前移
                }
                //跳出循环,说明交换完成
                array[j] = t;  //将基数插入到下标所代表的位置
            }

            foreach (int item in array) {

                Console.Write(item+"    ");

            }

        }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!