例子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方式,判斷是否符合要求。另一種是...