插入排序優化和二分法查詢的優化

2021-09-27 09:53:31 字數 921 閱讀 1928

在比較笨的方法是插入交換排序**為:

優化的是先將要比較的這個數進行拿出來,與前面的數進行比較若前面的是比較大的就讓他往後面移動一位,而不是交換了。其中的上面的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...