在選擇排序中,從第一個元素開始,依次遍歷數(shù)組中的元素,找出當前遍歷元素之后的最小元素,與當前遍歷元素交換位置,依此類推,是一種由前往后的排序。而在插入排序中,從第二個元素開始,依次遍歷數(shù)組中的元素,把當前遍歷元素與之前的元素進行比較,并插入到之前的某個位置,是一種由后往前的排序。
自定義一個類,里面維護著一個int[]類型數(shù)組,通過構(gòu)造函數(shù)定義數(shù)組長度并初始化,并提供了打印和插入排序的相關(guān)方法。
以上,大致過程是:從數(shù)組中第二個元素開始,先把當前遍歷元素賦值給一個臨時變量,比如說是insert,insert這個變量肯定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可以理解為一個動態(tài)索引,初始位置在當前遍歷元素的索引while (moveItem > 0 && arr[moveItem -1] > insert) //如果前面一個元素比插入元素大{arr[moveItem] = arr[moveItem - 1];//那就把前面這個元素賦值給后面位置,相當于往后移一位moveItem--;//再把動態(tài)索引位置向前移動一位}arr[moveItem] = insert;Print();}}//打印數(shù)組元素public void Print(){foreach (var item in arr){Console.Write(item + " ");}Console.WriteLine();}}
新聞熱點
疑難解答