public class sort }}
}/**
* 選擇排序
* @param arr
* @return
* 不穩定
* 初始時在序列中找到最小(大)元素,放到序列的起始位置作為已排序序列;
* 然後,再從剩餘未排序元素中繼續尋找最小(大)元素,放到已排序序列的末尾。
* 以此類推,直到所有元素均排序完畢。
* */
public static void selectionsort(int arr)
}temp = arr[i];
arr[i] = arr[minindex];
arr[minindex] = temp;}}
/** * 插入排序
* @param arr
* @return
* 對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。
* * 1.從第乙個元素開始,該元素可以認為已經被排序
* 2.取出下乙個元素,在已經排序的元素序列中從後向前掃瞄
* 3.如果該元素(已排序)大於新元素,將該元素移到下一位置
* 4.重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
* 5.將新元素插入到該位置後
* 6.重複步驟2~5
* */
public static void insertsort(int arr)
arr[j+1] = x ;}}
/** * 二分插入排序
* @param arr
* @return
* 在插入第i個元素時,對前面的0~i-1元素進行折半,先跟他們 中間的那個元素比,
* 如果小,則對前半再進行折半,否則對後半 進行折半,直到left>right,
* 然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。
* */
public static void dichotomyinsertsort(int arr) else
}for (int j = i - 1; j >= left; j--)
arr[left] = x;}}
}
資料結構之排序演算法
1.插入排序 直接插入排序 include void insertsort int unsort int length unsort j temp int main void insertsort num,7 int i 0 for i i 7 i return 0 折半插入排序 include v...
資料結構之排序演算法
學過好久的東西,感覺都忘記的差不多了,雖然可能日常寫 的過程之中也可能寫過一些演算法,但是從來都沒有規整,最近忙裡偷閒,寫點關於排序的演算法,當然好多人都寫過一些很不錯的演算法blog,我寫一下,只是方便自己日後檢視,當然也給有需要的朋友一些參考,歡迎指正 排序演算法有 氣泡排序,選擇排序,插入排序...
資料結構之排序演算法
1 直接插入排序 將乙個記錄插入到已經排好序的有序表中,只有當排序結束時每個元素才能進入到正確的位置,複雜度為o n2 優點 演算法簡單 易行,當待排序記錄數量較少時,該演算法非常有效 缺點 資料規模較大時,效率比較低。演算法insertsort r,n insertsort1.插入排序 for j...