1 面試題 排序演算法總結

2022-07-17 19:42:16 字數 1686 閱讀 8581

一:排序

1.冒泡 排序

原生:var arr=[5,4,3,2,1];

for (var i=0; i

//第一次迴圈比較輪數

for (var j=0; j

//第2次迴圈比較次數

if(arr[j]>arr[j+1])}}

呼叫api:

如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字串(如有必要),以便進行比較。

如果想按照其他標準進行排序,就需要提供比較函式,該函式要比較兩個值,然後返回乙個用於說明這兩個值的相對順序的數字。比較函式應該具有兩個引數 a 和 b,其返回值如下:

function sortnumber(a, b)

console.log('arr',arr);

console.log('arr.sort(sortnumber)',arr.sort(sortnumber));

二 :陣列反轉

原生:arr =[1,2,3,4,5,6,7,8];

for (var i=0;i

// arr[0] arr[arr.length-1-0]

// arr[1] arr[arr.length-1-1]

// arr[2] arr[arr.length-1-2]

// arr[3] arr[arr.length-1-3]

var temp = arr[i];

arr[i]= arr[arr.length-1-i];

arr[arr.length-1-i]=arr[i];

}

直接呼叫:arr.reverse()

三:陣列中去重

原生:思路:1.建立乙個新陣列,把原陣列中得第乙個元素插入到新陣列中

2.遍歷原陣列中得每乙個元素分別和新陣列中得每乙個元素進行比較

//原陣列

var arr=[1,2,3,4,5,6,7,7,7,7,7,8,8,8];

//新陣列

var arr2=;

arr2[0]=arr[0];

for (var i=0;i

this.handle('hello');

handle = (param) => 

let newobj = {};

for (let i = 0; i 

console.log('123', newobj[param.charat(i)])

console.log('22222', newobj);

}var maxobj = 

for (var k in newobj) 

}console.log('3333', maxobj);

return maxobj;

}

六、 breack和continue

演算法面試題(1)

1 最長不重複字串 如 abcabcd,第一步會先遇到重複字元a,則把起始的a刪除,再重b開始查不重複的字串,則為遇到重複,就去除最左端的字元 public static void main string args else max math.max max,set.size system.out....

面試題總結 選擇排序

1.原理每次從陣列元素中選出最小 或最大 的乙個元素,存放在已經排序好序列的起始位置 或者末尾位置 直到全部待排序的元素排完。2.思路第一趟排序,在待排序資料arr 1 arr 2 arr n 選取最小的資料,將其與arr 1 進行交換 第二趟排序,在待排序資料arr 2 arr 3 arr n 選...

部分面試題總結1

一 執行緒池的底層怎麼實現的?實現類為reentrantlock類,有幾個重要的方法 lock 加鎖,如果已經被獲取則等待 trylock 嘗試獲取鎖,獲取則返回true,否則false trylock long time,keepalivetime unit 在規定時間內獲取鎖 unlock 解鎖...