資料結構之排序演算法(一)

2021-08-15 20:48:59 字數 1125 閱讀 1568

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...