热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

JS 中数据解构与算法

知了堂姐
2024-07-08 17:22:16
0

1、JS 中数据解构与算法

答:数组,对象集合,set,Map

1、栈 LIFO

2、队列

3、链表

4、字典

5、树

2、排序(冒泡,选择,插入,快排)

答:选择排序,选假设一个最大,与剩下的比较,如果比 max 大就交换

function select_sort(A){

for(let i = 0;i

let max = A[i];//假设第一个最大

for(let j = i+1;j < A.length;j++){

if (max < A[j]) {

max = A[j];

let mid = A[j];

A[j] = A[i]

A[i] = mid;

}

}

}

}

插入,准备一个新数组,然后依次去原数组中取值,先取一个放到数组里,再取第二个跟新

数组里面的进行比较,如果大于就放到后面,小于就再往前找一个,直到找到比当前要小的数,并

把它插入后面。

function insert(data,i,t){ //假设 data 为有序数组,插入

//data 有序数组,i 数组最大的索引,t 要插入的节点

let p = i-1;//p 为下一个要比较的元素的索引值

while(p>=0 && data[p] > t){ //data[p] > t 当比较的元素比传进来的元素大

data[p+1] = data[p]; //错位,把当前元素赋值给下一个元素

p-- //p 往前走

}

data[p+1] = t //写入空位

}

function insert_sort(data){

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

insert(data,i,data[i])

}

}

快排,利用递归 

function querySort(arr){

if (!Array.isArray(arr)) return

if(arr.length <= 1){

return arr

}

var mid = arr.splice(Math.floor(arr.length/2),1)[0]

var left = [], right = [];

for(let i=0,len = arr.length;i<len;i++){

if (arr[i] >= mid){

right.push(arr[i])

}else{

left.push(arr[i])

}

}

return querySort(left).concat([mid],querySort(right))



3、数组去重

function unique(array){ //filter 同理

var n = []; //一个新的临时数组

for(var i = 0; i < array.length; i++){ //遍历当前数组

if (n.indexOf(array[i]) == -1){

n.push(array[i]);

}

return n;

}

const arr = [...new Set([arr])];




大家都在看

网络工程师和运维工程师的区别有哪些?学网络安全必...

2024-07-08 浏览次数:0

知了堂&四川职业技术学院:第一届产业学院“知了杯...

2024-07-08 浏览次数:0

java难学吗?最快学成Java的方法

2024-07-08 浏览次数:0

探索鸿蒙奥秘,知了汇智专家团高校开讲

2024-07-08 浏览次数:0

如何寻找合适的IT培训班?报名及选择注意事项

2024-07-08 浏览次数:0

前端好找工作吗?转行前端还可行吗?

2024-07-08 浏览次数:0
最新资讯