js演算法(二)

2021-10-03 04:55:46 字數 2614 閱讀 3667

例子1:氣泡排序

氣泡排序思想:(1)依次比較兩個相鄰的數字,小的放前面,大的放後面

//氣泡排序

function bubblesort(tmparr) }}

}function swap(a,b)

bubblesort(arr);

console.log(arr);

例子2:快速排序(1)選擇乙個元素作為基準(2)比該元素小的放在左邊,比該元素大的放在右邊(3)重複以上步驟

//陣列去重快速排序

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

function quicksort(tmparr)

var left = ;

var right =;

var index = math.floor(tmparr.length / 2);

var middleval = tmparr.splice(index,1)[0];

// document.write(middleval);

for(var i=0; imiddleval) else

}return quicksort(left).concat(middleval,quicksort(right));

}var newarr = quicksort(arr);

console.log(newarr);

3.this關鍵字

(1)它是個關鍵字,不能當成變數使用。

(2)代表函式執行時產生的乙個物件,只能在函式內部使用。

(3)隨著函式的使用場合不同,this會發生改變。

(4)指向呼叫函式的物件。

例子(1)

function fn() 

fn();//hello

例子(2)

function fn() 

var obj =

obj.a();//hello,object

4.例子(1)

// 列印輸出結果

console.log(1 + "2"+"2"); //數字與字串進行連線,合成乙個新的字串 //122;

console.log(1+ +"2"+"2"); // 一元+操作符可將字串轉換為數字 //『32』

console.log("a" - "b"+"2"); // nan(無法轉換數字的情況下產生的值) 'nan2';

console.log("a"- "b"+2); // nan + 2 = nan

例子(2)

function test() 

return

}var result = test();

var result2 = test();

result.add(); // 4400

result.add(); //4401

console.log(result.n); // 4399

result2.add(); // 4400

例子(3)

var arr = ;

arr[0] = 0;

arr[1] = 1;

arr.foo = 'c'; // 作為陣列的自定義屬性新增,首先可以正常使用,但是不會新增到陣列的長度內;

console.log(arr.length);//2

例子(4)

var a = undefined;

var b = 'false';

var c = '';

function print(val) else

} print(a); //true

print(b); // true

print(c); //false

例子(5)

var person = ;

var txt = "";

for (var o in person)

console.log(txt); //johndoe25

例子(6)

//考察陣列的掌握程度  自身改變操作以及生成新的陣列的操作

var arr = [1, 2, 3];

arr.shift(); // arr = [2,3]; arr.shift = [1];

arr.push(1); //arr = [2,3,1];

arr.unshift(2); // arr = [2,2,3,1];

var newarr = arr.concat([1, 2]); //newarr = [2,2,3,1,1,2];

console.log(newarr);

例子(7)

// js沒有塊級作用域

var msg = 'hello'; //幾乎沒用 障眼法

for (var i = 0; i < 10; i++)

console.log(msg);

js 基礎演算法題(二)

function isprime num 否則返回true return true console.log isprime 5 true優化 假如 n 是合數,必然存在非 1 的兩個約數 p1 和 p2,其中 p1 sqrt n p2 sqrt n 由此我們可以改進上述方法優化迴圈次數。functi...

JS資料結構與演算法(二)

一些資料結構的封裝,未完待續 棧的封裝 function stack this.pop function element this.peek function this.size function this.isempty function this.clear function this.prin...

js實現二分查詢演算法

二分查詢 是一種搜尋某個值的索引的演算法。基本條件 有序的陣列。思路 1.將陣列折半,分成左右兩個陣列。2.判斷要查詢的數和中間位置數值的大小,來判斷要查詢的數實在哪一半。3.之後繼續折半查詢,直至找到這個數。方法 二分查詢有兩種方法,一種是非遞迴方式,採用while方式,判斷是否符合要求。另一種是...