在比較笨的方法是插入交換排序**為:
優化的是先將要比較的這個數進行拿出來,與前面的數進行比較若前面的是比較大的就讓他往後面移動一位,而不是交換了。其中的上面的swap裡面包含三行**,而這裡就只有一行**了,執行時間減少了。
查詢v在有序陣列array中的位置,有則返回,沒有則返回-
1。public
class
welse
if(v>array[mid]
)else
}return-1
;}查詢v在陣列array中將要插入的位置,返回這個位置。
public
static
intsearch
(int
array,
int v)
else
}return begin;
}
在這裡面用的是位運算。這樣會節省運算,在這裡求出來的mid為4.5的時候因為他是整形所以就是取值4,在這裡我們先int end=array.length;把他等於最後乙個陣列最後乙個數此時這裡面是沒有資料的。這裡最後的是返回乙個return beg 二分法插入排序
二分法插入排序 演算法思想簡單描述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,如果小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的所有元素後移,再把第i個元素放在目標位置上。二分法沒有排序,只有查...
二分法插入排序
二分法插入排序 演算法思想簡單描寫敘述 在插入第i個元素時,對前面的0 i 1元素進行折半,先跟他們 中間的那個元素比,假設小,則對前半再進行折半,否則對後半 進行折半,直到left right,然後再把第i個元素前1位與目標位置之間 的全部元素後移,再把第i個元素放在目標位置上。二分法沒有排序,僅...
排序 二分法插入排序
不同點 在尋找插入位置的時候採用二分法定位。二分法怎麼定位?執行結果 原陣列 21 8 2 18 0 9 27 12 5 24 第0次迴圈排序結果 8 21 2 18 0 9 27 12 5 24 第1次迴圈排序結果 2 8 21 18 0 9 27 12 5 24 第2次迴圈排序結果 2 8 18...