日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

數(shù)組及排序、去重和隨機(jī)點(diǎn)名

 好程序員IT 2019-05-30

棧堆結(jié)構(gòu):

堆棧都是一種數(shù)據(jù)項(xiàng)按序排列的數(shù)據(jù)結(jié)構(gòu),只能在一端(稱為棧頂(top))對(duì)數(shù)據(jù)項(xiàng)進(jìn)行插入和刪除。

棧:存放的是路徑;容量有限(在一開(kāi)始被定義之后就不會(huì)改變了);先進(jìn)后出(FILO)first In

 Last Out

堆:路徑映射的數(shù)據(jù);容量無(wú)限(因?yàn)橐恢笨赡鼙桓淖儯?;列?duì)優(yōu)先,先進(jìn)先出(FIFO)first In Last Out

如果我們把數(shù)組理解為棧堆結(jié)構(gòu)的話,那么 

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

那么arr就是 棧 他是一個(gè)路徑 : 找到數(shù)據(jù)的存儲(chǔ)層;

數(shù)據(jù) [1,2,3,4,5,6] 就是堆 ; 

如果我們想要 改變堆中的數(shù)據(jù)的話,那么我們可以用push()方法向尾部添加一個(gè)數(shù)據(jù),或者用pop()方法刪除尾部數(shù)據(jù)。

數(shù)組:

for-in(結(jié)合數(shù)組或?qū)ο螅?/span>

數(shù)組的概念,一組(一般情況下相同類型)的數(shù)據(jù);

下標(biāo)(索引)的概念;

創(chuàng)建數(shù)組

var arr= new Array(10); //創(chuàng)建一個(gè)包含 10 個(gè)元素的數(shù)組;

var arr2= new Array('楊懷智',100,'教師','遼寧');//使用構(gòu)造函數(shù)創(chuàng)建;

var arr3 = [1,2,3,4,5];

靜態(tài)賦值

arr[0] = 5;

arr[1] = 12;

arr[2] = 4;

動(dòng)態(tài)賦值

for(var i=0; i<5; i++){

    arr[i] = Math.random();

}

數(shù)組對(duì)象自帶的屬性:length代表數(shù)組有多少數(shù)據(jù)項(xiàng);

遍歷訪問(wèn)數(shù)組  普通for循環(huán)和 forEach循環(huán)

arr.forEach(function(element,index,Arr){

})

push/pop、unshift/shift方法

arr.push('BJ'); //數(shù)組末尾添加一個(gè)元素

arr.unshift('TJ');  //數(shù)組開(kāi)頭添加一個(gè)元素

var str = arr.pop();   //移除末尾一個(gè)元素,并返回該元素

var str = arr.shift();   //移除開(kāi)頭一個(gè)元素,并返回該元素

隊(duì)列結(jié)構(gòu):

練習(xí):找出所有1-100之間7的倍數(shù)和包含7的數(shù)字

倒序reverse方法;

arr.reverse()方法不會(huì)創(chuàng)建新的數(shù)組,而是將原有數(shù)組順序進(jìn)行了改變;

var arr=[1,2,3]

arr.reverse();

console.log(arr)//3,2,1

從小到大排序sort方法  (數(shù)字的排序)

冒泡排序算法:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<script>

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

for (var i = 0; i < arr.length - 1; i++) {

for (var j = 0; j < arr.length - i; j++) {

var ls;

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

ls = arr[j];

arr[j] = arr[j + 1]

arr[j + 1] = ls

}

}

}

console.log(arr)

</script>

</head>

<body>

</body>

</html>

選擇排序算法:

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

<script>

var arr = [3, 4, 1, 5, 2]

for (var i = 0; i < arr.length; i++) { //趟數(shù)

var min = arr[i];

var index = i;

for (var j = i; j < arr.length; j++) {

if (min > arr[j]) {

min = arr[j];

index = j;

}

}

arr[index] = arr[i];

arr[i] = min;

}

document.write(arr);

</script>

</head>

<body>

</body>

</html>

案例:去重

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<script>

var arr = [11, 2, 33, 4, 2, 11, 3, 44, 33, 2]

arr.sort();

var arr2 = [arr[0]]

for (var i = 0; i < arr.length; i++) {

if (arr[i] != arr2[arr2.length - 1]) {

arr2.push(arr[i]);

}

}

alert(arr2)

</script>

</head>

<body>

</body>

</html>

隨機(jī)點(diǎn)名程序:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<script>

document.onclick = function() {

var aName = ['楊懷智1', '楊懷智3', '楊懷智4']

var rad = Math.round(Math.random() * 2);

document.write(aName[rad])

}

</script>

</head>

<body>

隨機(jī)點(diǎn)名

</body>

</html>

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多