陣列:相同型別資料的集合
強型別語言:1,陣列裡面只能存放相同資料型別的資料。
2,定義陣列時需要定乙個長度(可以存放元素的數量)
集合:1,可以存放任意型別的資料,
2,定義時候不需要制定長度
3,記憶體空間不連續
js陣列:1,可以存放任何型別的資料。
2,定義時候不需要制定長度
定義乙個陣列 var attr = array(1,3.14,」aa」); 陣列裡面資料排列順序是0 1 2 3 4…
中間每個資料用逗號分割,
var attr= attr(5);
var attr=[1,3.14,」aa」] 直接用方括號來定義 輸出的時候
alert(attr[2]);
屬性length就是陣列長度,
alert(attr.length); 輸出陣列長度,
push追加元素
attr.push(「bb」); 就是將bb新增到attr數集裡面,
陣列 遍歷
for(var i=0;ialert(attr[i]);
foreach( )方式遍歷 a是索引。
for(var a in attr)
alert(attr[a]);
例子
10個分數,求總分,最高分,最低分
var attr =[89,80,76,49,90,25,85,76,59,40];
var sum = 0;
for(var i=0;isum += attr[i];
alert(sum);成績總和
var zg = 0;
for(var i=0;iif(attr[i]>zg)
zg = attr[i];
alert(zg);最高成績
var zd = zg;
for(var i=0;iif(attr[i]zd = attr[i];
alert(zd); 最低成績。
新增去重
var attr = [2,5,10,16,27];
var sj = 27;
var cf = true;
for(var i=0; iif(sj == attr[i])
cf = false;
break;
if(cf)
attr.push(sj);
alert(attr.length);
else
alert("有重複值");
var attr = [1,8,26,4,15,3,7,42,9];
對陣列元素進行排序
氣泡排序
8 6 4 5 3 7 2 9 1 8
8 6 5 4 7 3 9 2 1 7
8 6 5 7 4 9 3 2 1 6
8 6 7 5 9 4 3 2 1 5
8 7 6 9 5 4 3 2 1 4
8 7 9 6 5 4 3 2 1 3
8 9 7 6 5 4 3 2 1 2
9 8 7 6 5 4 3 2 1 1
兩個相鄰的元素進行比較,滿足條件元素互換
進行比較的輪數是陣列的長度減一
定義乙個交換使用的中間變數
var zj = 0;
控制比較的輪數
for(var i=0;i控制每輪比較的次數
for(var j=0;j如果下乙個元素大於當前元素
if(attr[j]zj = attr[j]; 互換
attr[j] = attr[j+1];
attr[j+1] = zj;
alert(attr[0]);
attr.sort();
alert(attr[3]);
在陣列裡面查詢資料
var attr = [1,2,3,4,5,6,7,8,9];
要查詢的值
var v = 0;
迴圈遍歷的方式
var sy = -1;
for(var i=0;iif(attr[i]==v)
sy = i;
if(sy == -1)
alert("沒找到資料");
else
alert("該資料在陣列裡面的索引為:"+sy);
二分法查詢資料
最小索引
var minsy = 0;
var maxsy = attr.length-1;
var midsy ;
迴圈比較
while(true)
計算中間索引
midsy = parseint((minsy+maxsy)/2);
比較中間值和使用者的值
判斷中間索引的值是否等於使用者要查詢的值
if(attr[midsy] == v)
如果等於,就退出迴圈,找到了資料
break;
判斷是否只剩下兩個資料
if(midsy == minsy)
判斷兩個資料中的另外乙個是否等於使用者查詢的值
if(attr[midsy+1]==v)
找到了值,退出迴圈
midsy = midsy+1;
break;
else
沒有找到值,退出迴圈
midsy = -1;
break;
用來改範圍
if(attr[midsy]>v)
maxsy = midsy;
else
minsy = midsy;
alert(midsy);
二分法和氣泡排序
先放乙個 可以看到冒泡,選擇,插入排序的過程 冒泡 選擇 插入排序 前言 二分法是乙個優化演算法,在乙個基於有序列表中,列表從1到10000,如果要找乙個8899的數字,不用二分法的話,就是迴圈從一到10000,直到找到8899.但是,有沒有想過,前5000個都比8899小,所以能不能直接第一次就判...
氣泡排序 二分法
核心 掐頭去尾取中間.一次砍一半 二分查詢.每次能夠排除掉一半的資料.查詢的效率非常高.但是侷限性比較大.必須是有 序序列才可以使用二分查詢 兩種演算法 常規迴圈,遞迴迴圈 使用二分法可以提高效率,前提條件 有序序列 lst 22,33,44,55,66,77,88,99,101 238 345 4...
氣泡排序法和二分法排序
使用氣泡排序法對陣列進行排序的原理 陣列元素兩兩比較大小 function func arr print r arr arr array 0,11,2,3,24,5,16,7,48,9 func arr 使用快速排序法對陣列進行排序的原理 陣列元素進行樹狀分支,分結點比較大小,然後採用遞迴函式遞迴處...