歸併排序是典型的的分治思想的體現,關鍵在與遞迴的分和遞迴的和.最好結合動態檢視學習.
public
class
mergesort
;//遞迴演算法 肯定是要有左右邊界的
mergesort ms =
newmergesort()
;int
temp =
newint
[arr.length]
;//temp陣列的目的在於減少額外的空間複雜度
ms.mergesort
(arr,
0, arr.length -
1, temp)
; system.out.
println
(arrays.
tostring
(arr));
}/**
* 分治演算法: 把乙個大問題分解成子問題,遞迴的解決
** @param arr
* @param left
* @param right
* @param temp
*/private
void
mergesort
(int
arr,
int left,
int right,
int[
] temp)
private
void
merge
(int
arr,
int left,
int mid,
int right,
int[
] temp)
else
}//現在將未進行排序繼續在臨時陣列中進行排序,並copy給原來的陣列
while
(i <= mid)
while
(j <= right)
int m =0;
while
(left <= right)
}}
/**
* @description:插入排序:基礎排序演算法中較重要的排序演算法
* @author: tian
* @time: 2021/1/26 21:35
*/public
class
insertsort
;int
ints = insertsort.
insertsort
(nums)
; system.out.
println
(arrays.
tostring
(ints));
}public
int[
]insertsort
(int
nums)
if(j != i)
}return nums;
}}
/**
* @description: 二分查詢,關鍵在於注意等號是否成立
* @author: tian
* @time: 2021/1/26 22:43
*/public
class
binarysearch
else
if(array[mid]
< target)
else
}return-1
;}}
LeetCode演算法打卡
475.供暖器 冬季已經來臨。你的任務是設計乙個有固定加熱半徑的供暖器向所有房屋供暖。現在,給出位於一條水平線上的房屋和供暖器的位置,找到可以覆蓋所有房屋的最小加熱半徑。所以,你的輸入將會是房屋和供暖器的位置。你將輸出供暖器的最小加熱半徑。說明 給出的房屋和供暖器的數目是非負數且不會超過 25000...
leetcode 學習打卡
026 刪除排序陣列中的重複項 033 搜尋旋轉排序陣列 題目描述 python class listnode def init self,x self.val x self.next none class solution def mergeklists self,lists list listn...
leetcode 126 單詞接龍2
給定兩個單詞 beginword 和 endword 和乙個字典 wordlist,找出所有從 beginword 到 endword 的最短轉換序列。轉換需遵循如下規則 每次轉換只能改變乙個字母。轉換過程中的中間單詞必須是字典中的單詞。說明 示例 1 輸入 beginword hit endwor...