這篇文章主要講解了“java數組插入元素并快捷排序的方法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java數組插入元素并快捷排序的方法”吧!
1、從數組的第二個元素進行操作,如果發現其前面的元素比他大,就將其前面的元素往后挪,直到cur指向的元素大于或者等于他前一個元素,此時cur指向的位置就是待插入元素應該插入的位置。
static int[] insertSort2(int[] array){
int len = array.length;
for (int begin = 1; begin < len; begin++){
int cur = begin;
int tmp = array[cur];
while (cur > 0 && array[cur] < array[cur-1]){
array[cur] = array[cur-1];
cur--;
}
array[cur] = tmp;
}
return array;
}2、通過二分查找減少了比較次數,即cmp函數的調用,還減少了swap函數的調用。更快的找到了當前元素應該插入的位置,然后再進行挪動,提高了效率。
static int[] insertSort3(int[] array){
int len = array.length;
for (int begin = 1; begin < len; begin++){
int v = array[begin];
int insertIndex = search(array,begin);
// 將 [insertIndex, begin) 范圍內的元素往右邊挪動一個單位
for (int i = begin; i > insertIndex; i--){
array[i] = array[i-1];
}
array[insertIndex] = v;
}
return array;
}
static int search(int[] array, int index){
int begin = 0;
int end = index;
while(begin < end){
int mid = (begin+end) >> 1;
if (array[index] < array[mid]){
end = mid;
}else{
begin = mid+1;
}
}
return begin;
}感謝各位的閱讀,以上就是“java數組插入元素并快捷排序的方法”的內容了,經過本文的學習后,相信大家對java數組插入元素并快捷排序的方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。