a,對於隨機順序的資料進行插入排序需要o(n2)的時間
b,當資料有序的時候,演算法執行需要o(n)時間
c,當資料基本有序的時候,演算法幾乎只需要o(n)時間
2)不變性
比outer變數下標號小的資料項都是區域性有序的。
3)思路
a)設定乙個outer標籤,用於表示其左邊的元素已經排好,初始位置為1。每經過一次迴圈,outer加1直到陣列的最右端即末尾。
b)設定乙個臨時變數temp,用來儲存待插入的資料,即outer指向的資料。
c)設定乙個in標籤,主要是用來確定具體插入outer左邊哪乙個位置。其判斷的思路是,當in>0且它前乙個值大於或等於臨時變數temp時,就將該位置及以後的元素向右邊移動,空出來的位置插入該元素。
原始碼示例
/**
* 排序陣列,用於對陣列進行排序
* 採用插入排序
*/public
void
insertsort()
randomarray[in] = temp;
}}
其餘**見如下傳送門
傳送門
資料結構與演算法之陣列
陣列的基本概念 陣列是最簡單最常用的資料結構,但是也有一些注意事項 1 陣列的分配方式以及儲存位置 2 初始化 3 不同語言中的陣列高階定義 4 多維陣列 c c 中陣列分配方式 1 int a 10 適用於陣列長度已知或者對陣列長度不敏感的情況,比如定義乙個字串。2 int a int mallo...
資料結構與演算法之陣列
1 陣列的定義 陣列是相同型別資料的有序集合。他描述的是相同型別的若干個資料,按照一定先後順序排列組合而成,當中每乙個資料稱為元素,要訪問元素可以通過他的索引 下標去訪問他 2 陣列的幾個基本要素 1 陣列一旦被建立,其大小是不可以改變的,也就是長度是確定的 2 元素型別是相同型別 3 陣列型別可以...
java資料結構之陣列
首先定義乙個陣列類class myarray 空參構造時預設是長度為3的陣列 public myarray int maxsize 有參構造時引數為陣列長度 接下來是對陣列的插入 public void insert int a 然後是對陣列的刪除 public void delete int in...