package basicknowledge.sort;
/** * @program:summary
* @author:peicc
* @create:2019-07-18 16:46:07
**///插入排序
//將未排序的資料插入到已排序的資料系列之中
//時間複雜度o(n2):1+2+3+...+n-1
//最優:o(n):陣列有序,每次只需比較不成立即可
//通過交換相鄰元素進行排序的任何演算法平均都需要 ω(n2)
public class insertsort
array[j+1]=insertnum;//將要插入的元素放在要插入的位置}}
}
package basicknowledge.sort;
/** * @program:summary
* @author:peicc
* @create:2019-07-18 20:52:31
**/public class shellsort
array[j+gap]=temp;}}
}}
public static void main(string args) ;
shellsort(a);
for (int i = 0; i }
}
插入排序 直接插入排序與希爾排序
插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。本節介紹兩種插入排序方法 直接插入排序和希爾排序。直接插入排序基本思想 1 基本思想 假設待排序的記錄存放在陣列r 1.n 中。初始時,r ...
直接插入排序 希爾排序
一.直接插入排序 原理 將陣列分為無序區和有序區兩個區,然後不斷將無序區的第乙個元素按大小順序插入到有序區中去,最終將所有無序區元素都移動到有序區完成排序。最優複雜度 當輸入陣列就是排好序的時候,複雜度為o n 而快速排序在這種情況下會產生o n 2 的複雜度。最差複雜度 當輸入陣列為倒序時,複雜度...
直接插入排序 希爾排序
1.直接插入排序 時間複雜度o n2 工作原理 通過構建有序序列,對於未排序資料,在已排序的序列中,從後向前掃瞄,找到相應的位置並插入。插入排序在實現上,在從後向前掃瞄的過程中,需要反覆把已排序元素逐步向後移動,為最新元素提供插入空間。直接插入排序 public static void insert...