例如:給定乙個無序陣列int arr=; n代表集合陣列的長度,給出乙個演算法將陣列arr按照從小到大的順序進行排列。
插入排序:看當前位置i的值是否比它前乙個數小,如果小就與前面的數交換位置。
public
static
void
insertionsort(int arr,int n)
}}public
static
void
insertionsortpro(int arr,int n)
arr[j]=e;
}}public
static
void
swap(int arr,int a,int b)
1.插入排序與選擇排序的最大區別在於插入排序可以提前結束迴圈查詢。而選擇排序是每次都需要進行全陣列掃瞄。
2.對於insertionsort演算法來說,它的時間複雜度為o(n^2),並且效率要比同為o(n^2)的選擇排序還要慢,是因為在比較的同時,程式還在不停的做swap(arr,j,j-1)互動,互動要比比較更加耗時。
3.對於insertionsortpro演算法,它優化的核心思想在於使內層迴圈只交換一次。當e
資料結構與演算法 插入排序
將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的 個數加一的有序資料 插入排序分為兩種 直接插入排序和希爾排序 插入排序與打撲克時整理手上的牌非常類似。摸來的第1張牌無須整理,此後每次從桌上的牌 無序區 中摸最上面的1張並插入左手的牌 有序區 中正確的位置上。為了找到這個正確的位置,須自左向...
資料結構與演算法 插入排序
一 排序的相關概念 1 排序 將任意序列的資料元素,重新排列成按關鍵字有序 遞增有序或遞減有序 的序列過程。2 穩定性 若在排序過程中,序列的兩個關鍵字值相同的記錄,在排序結束後,相對位置不發生改變,則稱所用的排序方法為穩定的。3 排序方法的兩個效能指標 時間複雜度和空間複雜度。二 插入排序 1 基...
資料結構與演算法 插入排序
基本思想 每一步將乙個待排序的元素,按其排序碼的大小,插入到前面已經排好序的一組元素的合適位置上去,直到元素全部插完為止。1.元素集合越接近有序,直接插入排序演算法的時間效率越高 2.時間複雜度 最優情況下 o n 最差情況下 o n 2 3.空間複雜度 o 1 它是一種穩定的排序演算法 4.穩定性...