首页 > 代码库 > 面试-算法
面试-算法
现在很多公司面试的时候会要求做一些算法题,写一下我面试时遇到的算法题
1.泡沫排序
原理:以升序为例,拿数组中的元素进行两两比较,较大的会放到后面,第一轮会找出最大的元素放到最后,然后进行arr.length-1次,把所有的元素全部排序完成
1 // 泡沫排序 升序 2 function pup(arr){ 3 // 共需要arr.length-1轮比较 4 for(var i=0;i<arr.length-1;i++){ 5 // 进行两两比较 6 for(j=0;j<arr.length;j++){ 7 if(arr[j] > arr[j+1] ){ 8 // 调换位置 9 var temp = arr[j]; 10 arr[j] = arr[j+1]; 11 arr[j+1]= temp; 12 } 13 } 14 } 15 return arr; 16 } 17 18 var arr1 = [1,34,5,33,3,32 ] 19 console.log(pup(arr1)) // Arrar(6) 1,3,5,32,33,34
2.插入排序
原理:根据已经排好的数组,插入到指定的位置。以升序为例,将要插入的元素和数组中的第一个元素开始比较,直到要插入的元素小于数组中的元素,把它插到这个元素的前面
1 // 插入排序 2 function insertSort(arr,x){ 3 for(var i=0;i<arr.length;i++){ 4 if(arr[i]>x){ 5 arr.splice(i,0,x) //插入 6 break; // 跳出循环 7 } 8 } 9 return arr 10 } 11 12 var arr2 = [1,3,5,7,788] 13 14 document.write(insertSort(arr2,4)) // 1,3,4,5,7,788
3.在一个公司面试时遇到让数组中的偶数项相加
1 // 数组中偶数项相加 2 function odd(arr){ 3 var res = 0; 4 for(var i=0;i<arr.length;i++){ 5 if(i%2 !== 0){ 6 res += arr[i] 7 } 8 } 9 return res; 10 } 11 12 var arr3 = [3,4,5,67,78,8,3] 13 document.write(odd(arr3)) // 79
面试-算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。