二分法查詢,也稱折半查詢,是一種在有序陣列中查詢特定元素的搜尋演算法。常用案例:有序陣列插入輸入: [1,3,5,6], 5
輸出: 2
/**
* @param nums
* @param target
* @return
*/var searchinsert = function(nums, target) else if(nums[mid] < target) else
}return left
};
輸入:intervals = [[1,4],[4,5]]
輸出:[[1,5]]
解釋:區間 [1,4] 和 [4,5] 可被視為重疊區間。
var merge = function(intervals) else
})res.push(pre)
return res
};
給定 matrix = [ [1,2,3],[4,5,6],[7,8,9] ],原地旋轉輸入矩陣,使其變為:[ [7,4,1], [8,5,2],[9,6,3] ]
var rotate = function (matrix: any)
// }
// matrix = matrix_new.slice()
// 方法二:原陣列先水平翻轉再對角線翻轉
//水平翻轉
for(let i=0; i < n >>> 1; i++)
//對角線翻轉
for(let i=0; i < n; i++)
}};
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。輸入:nums = [1,2,3,4]
輸出:[1,3,2,4]
/**
* @param nums
* @return
*/var exchange = function(nums)
if(nums[right] % 2 == 0)
temp = nums[left]
nums[left] = nums[right]
nums[right] = temp
left ++
right --
}return nums
};
給定乙個整形陣列arr,已知其中所有的值都是非負的,將這個陣列看作乙個容器,請返回容器能裝多少水。示例1
[3,1,2,5,2,4] 輸出 5
function maxwater( arr ) else
}return res
}
演算法穩定性 -- 假設在數列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面;並且排序之後,a[i]仍然在a[j]前面。則這個排序演算法是穩定的!
左邊為無序,右邊為有序,每一輪排序都會找到乙個有序值放到右邊,是乙個穩定的排序演算法。最壞時間複雜度o(n^2),空間複雜度o(1)
function sort(arr)
}// 有序後即可退出冒泡
if(flag)
}}
左邊為有序,右邊為無序,最壞時間複雜度o(n^2),空間複雜度o(1)
function sort(arr)
}// 如果最小值位置發生變化 則交換當前值與最小值位置
if(min != i)
}}
-快速排序
// 將小於比較值的放入左陣列,大於的放右陣列,然後再拼接到一起
function sort(arr)
let left =
let right =
let mid = arr[0]
for(let i = 1; i < arr.length; i ++) else
}return sort(left).concat(mid, sort(right))
}
-數值的整數次方
/**
* @param x
* @param n
* @return
*/var mypow = function(x, n)
// 不為0的1次方是他本身
if(n===1)
// 負數處理
if(n < 0)
let res = 1
while (n)
// 改變底
x*=x
// n 除以 2
n=n>>>1
}return res
};
Weka 演算法大全
一 apriori 二 filteredassociator 三 fpgrowth 四 generalizedsequentislpatterns 五 predictiveapriori 六 tertius 一 clope 二 cobweb 三 dbscan 四 em 五 farthestfrist...
排序演算法大全
include include define maxsize 100 typedef int datatype void selectsort datatype x,int n 選擇排序 void bubblesort datatype x,int n 氣泡排序 void quicksort dat...
匈牙利演算法模板 KM演算法模板
匈牙利演算法模板 時間複雜度為o ve v為二分圖左邊的頂點數,e為二分圖中邊的數目 include includeconst int maxn 1010 const int maxm 20010 const int max 10001 const int inf 1000000000 int li...