国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

查找與排序04,插入排序

2019-11-17 03:00:29
字體:
來源:轉載
供稿:網友

查找與排序04,插入排序

在選擇排序中,從第一個元素開始,依次遍歷數組中的元素,找出當前遍歷元素之后的最小元素,與當前遍歷元素交換位置,依此類推,是一種由前往后的排序。而在插入排序中,從第二個元素開始,依次遍歷數組中的元素,把當前遍歷元素與之前的元素進行比較,并插入到之前的某個位置,是一種由后往前的排序。

自定義一個類,里面維護著一個int[]類型數組,通過構造函數定義數組長度并初始化,并提供了打印和插入排序的相關方法。

    public class MyArray
    {
        PRivate static int[] arr;
        private static Random r = new Random();
        public MyArray(int size)
        {
            arr = new int[size];
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = r.Next(10, 100);
            }
        }
        //插入排序
        public void Sort()
        {
            int insert;
            for (int i = 1; i < arr.Length; i++) //從第二個元素開始遍歷
            {
                insert = arr[i];//把當前遍歷元素視為插入元素,放到臨時變量insert中
                int moveItem = i;//movieItem可以理解為一個動態索引,初始位置在當前遍歷元素的索引
                while (moveItem > 0 && arr[moveItem -1] > insert) //如果前面一個元素比插入元素大
                {
                    arr[moveItem] = arr[moveItem - 1];//那就把前面這個元素賦值給后面位置,相當于往后移一位
                    moveItem--;//再把動態索引位置向前移動一位
                }
                arr[moveItem] = insert;
                Print();
            }
        }
        //打印數組元素
        public void Print()
        {
            foreach (var item in arr)
            {
                Console.Write(item + " ");
            }
            Console.WriteLine();
        }
    }
以上,大致過程是:從數組中第二個元素開始,先把當前遍歷元素賦值給一個臨時變量,比如說是insert,insert這個變量肯定
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临武县| 手游| 夏河县| 龙胜| 工布江达县| 华池县| 佛学| 汪清县| 于田县| 馆陶县| 营山县| 台湾省| 郑州市| 原平市| 临洮县| 黄山市| 凉城县| 那坡县| 佛学| 卢龙县| 德惠市| 南漳县| 荔波县| 阿克| 闽侯县| 崇信县| 旬邑县| 洱源县| 邛崃市| 略阳县| 江安县| 新密市| 库尔勒市| 林州市| 定州市| 荣成市| 渝北区| 榕江县| 渝北区| 怀化市| 含山县|