1. 排序:
自定義排序: 冒泡
排序api:arr.sort();
大問題: 預設將所有元素轉為字串再按字串排列
只能對字串型別的元素正確排序
解決: 自定義比較規則:
比較器函式: 專門比較任意兩值大小的函式:
要求: 兩個引數: a,b
返回值: 如果a>b,就返回正數
如果a降序: 顛倒比較器函式的正負號,可改公升序為降序
最簡單的數字降序比較器函式:
function compare(a,b)
2. 棧和佇列:js中沒有專門的棧和佇列型別
一切棧和佇列都是用普通陣列模擬的
棧: 一端封閉,只能從另一端進出的陣列
特點: filo
何時: 今後只要希望始終使用最新的元素時
如何:
1. 從結尾出入棧:
入: arr.push(值) => arr[arr.length]=值
出: var last=arr.pop()
特點: 每次出入棧,都不影響其他元素的位置
2. 從開頭出入棧:
入: arr.unshift(值)
出: var first=arr.shift()
特點: 每次出入棧,其它元素位置都會依次順移
佇列: 只能從一端進入,從另一端出的陣列
特點: fifo
何時: 只要希望按先後順序使用陣列中的元素時
1. 結尾入: 入: arr.push(值)
2. 開頭出: var first=arr.shift()
3. 二維陣列:
什麼是: 陣列中的元素又引用了另乙個子陣列
何時: 1. 儲存橫行豎列的二維資料結構
2. 對一組資料,再進行細緻分類時
如何:
建立: 2種:
1. 建立陣列時,還不知道子陣列的內容:
var arr=;
arr[0]=[值1,值2,...];
arr[1]=[值1,值2,...];
2. 建立陣列同時初始化元素:
var arr=[
[值1,值2,...],
[值1,值2,...],
...]
訪問: arr[r][c]->用法和普通陣列元素的用法完全一樣
強調: 二維陣列,行下標r不能越界!——報錯!
遍歷: 外層迴圈控制行,內層迴圈控制列
for(var r=0; r}
四 排序演算法
1.快速排序 procedure qsort l,r integer var i,j,mid integer begin i l j r mid a l r div 2 repeat while a i mid do dec j if i j then begin swap a i a j inc ...
php四排序 選擇排序
原理 在一列數字中,選出最小數與第乙個位置的數交換。然後在剩下的數當中再找最小的與第二個位置的數交換,如此迴圈到倒數第二個數和最後乙個數比較為止。以下都是公升序排列,即從小到大排列 舉例說明 arr array 6,3,8,2,9,1 第一輪 第一次比較,第乙個數 6 與 3,8,2,9,1 中 3...
php四排序 氣泡排序
演算法和資料結構是乙個程式設計工作人員的內功,技術牛不牛,一般都會看這兩點。作為php程式設計師,提公升技能當然也得學習演算法。下面介紹四種入門級排序演算法 氣泡排序 選擇排序 插入排序 快速排序。一 氣泡排序 原理 對一組資料,比較相鄰資料的大小,將值小資料在前面,值大的資料放在後面。以下都是公升...