標籤:blog http java strong 資料 width
在排序演算法中,簡單排序主要有三種,分別為冒泡排序、選擇排序、插入排序,學習理解好這三種排序演算法有助於進一步研究資料結構與演算法分析。下面,簡單地談一談冒泡排序、選擇排序、插入排序的原理及區別。
冒泡排序原理:1、比較相鄰的元素。如果前一個比後一個大,它們就交換。2、每對元素都要進行同樣的動作,從後往前比較。3、每趟都會確定一個位置的元素,因此n個元素,需要n-1趟才能確定各個元素的位置。 例如:對23,4,56,11四個數進行冒泡排序。第一趟 4,23,11,56第二趟 4,11,23,56第三趟 4,11,23,56Java程式實現如下:
選擇排序原理:1、選擇排序與其他兩種排序相比,會多了一個虛擬指標,該指標永遠指向每趟比較中最小值所在的位置下標。2、每一趟比較都與虛擬指標所對應的元素比較,如果該元素比指標所對應的元素小,那麼虛擬指標指向新的地址,進行下一個元素比較。3、每趟都會確定一個位置的元素,因此n個元素,需要n-1趟才能確定各個元素的位置。 例如:對23,4,56,11四個數進行選擇排序。第一趟 4,23,56,11第二趟 4,11,56,23第三趟 4,11,23,56Java程式實現如下:
插入排序原理:1、元素區被分成有序地區和無序地區。2、從第二個元素開始,與前面的元素比較,確定插入的位置。3、如果元素大於比較元素,則改元素需要往後移動。 例如:對23,4,56,11四個數進行插入排序。第一趟 4,23,56,11第二趟 4,23,56,11第三趟 4,11,23,56Java程式實現如下:
三種簡單排序的異同點:1、冒泡排序和選擇排序每一趟都會確定一個位置上的元素,兩者的排序效率比較低。2、選擇排序隱含著最小值指標,每趟比較都與該指標所對元素比較。3、插入排序在排序過程中有明顯的分區,一邊為有序的元素,一邊為無序的元素。4、插入排序的效率比冒泡排序和選擇排序的效率都高。