演算法模板大全

2021-10-19 05:11:10 字數 2728 閱讀 2034

二分法查詢,也稱折半查詢,是一種在有序陣列中查詢特定元素的搜尋演算法。

輸入: [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...