小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

數(shù)組及排序、去重和隨機點名

 好程序員IT 2019-05-30

棧堆結構:

堆棧都是一種數(shù)據(jù)項按序排列的數(shù)據(jù)結構,只能在一端(稱為棧頂(top))對數(shù)據(jù)項進行插入和刪除。

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

 Last Out

堆:路徑映射的數(shù)據(jù);容量無限(因為一直可能被改變);列隊優(yōu)先,先進先出(FIFO)first In Last Out

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

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

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

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

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

數(shù)組:

for-in(結合數(shù)組或對象);

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

下標(索引)的概念;

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

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

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

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

靜態(tài)賦值

arr[0] = 5;

arr[1] = 12;

arr[2] = 4;

動態(tài)賦值

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

    arr[i] = Math.random();

}

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

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

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

})

push/pop、unshift/shift方法

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

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

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

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

隊列結構:

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

倒序reverse方法;

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

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>

隨機點名程序:

<!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>

隨機點名

</body>

</html>

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多