失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 一道JS算法面试题——冒泡 选择排序

一道JS算法面试题——冒泡 选择排序

时间:2019-11-17 16:53:13

相关推荐

一道JS算法面试题——冒泡 选择排序

JS排序算法

基础排序冒泡排序选择排序 面试题

基础排序

今天学习了数据结构,遇到了一个关于算法的面试题,然后从中想到了冒泡排序和选择排序对一个数组从小到大的排序的方法,今天分享给大家,顺便记录下我的学习经历吧。

冒泡排序

要求:对数组[6,3,8,2,9,1]进行从小到大的排序

想法:相邻的两个位置进行对比,如果大的那个换到右边,小的那个换到左边。上代码!

var arr = [6,3,8,2,9,1];var len = arr.length;for(var i=0;i<arr.length;i++){//len-1-i的意思是数组最后那个的长度for(var j=0;j<len-1-i;j++){if(arr[j]>arr[j+1]){var temp = arr[j];//因为arr[j]会被赋值,所有要先保存一下arr[j] = arr[j+1];arr[j+1] = temp;}}}

选择排序

要求:对数组[49,27,65,97,76,12,38]进行从小到大的排序

想法:创建一个指针先指向第一位置,然后另一个指针扫后面所有的,找到最小的,跟第一个指针互换位置

var arr = [49,27,65,97,76,12,38];var len = arr.length;var pont = null;//设定一个指针for(var i=0;i<arr.length;i++){pont = i;//指针先指向第一个位置for(var j=i+1;j<arr.length;j++){if(arr[point] > arr[j]){pont = j;}}var temp = arr[i];arr[i] = arr[point];arr[point] = temp;}

面试题

要求:把数组[{‘brand’:‘可乐’,‘price’:3,‘year’:},{‘brand’:‘薯片’,‘price’:7,‘year’:},{‘brand’:‘朗姆酒’,‘price’:200,‘year’:1999},{‘brand’:‘薯条’,‘price’:7,‘year’:},{‘brand’:‘营养快线’,‘price’:5,‘year’:}] 安装价格从小到大排序,如果价格一样,价格按从大到小排序。

想法:用刚才的选择排序来实现

var arr = [{'brand':'可乐','price':3,'year':},{'brand':'薯片','price':7,'year':},{'brand':'朗姆酒','price':200,'year':1999},{'brand':‘薯条’,'price':7,'year':},{'brand':‘营养快线’,'price':5,'year':}];var len = arr.length;var point = null;for(var i=0; i<arr.length;i++){point = i;for(var j=i+1;j<arr.lenth;j++){if(arr[pont]['price'] > arr[j]['price']){point = j;}else if(arr[point]['price'] > arr[j]['price'] && arr[point]['year'] < arr[j]['year']){point = j;}}var temp = arr[i];arr[i] = arr[point];arr[point] = temp;}

这样就实现了,题目要求的排序了。如果有喜欢前端的伙伴,可以关注我一下,我会每周不定期,分享前端的小知识点,一起学习进步。

如果觉得《一道JS算法面试题——冒泡 选择排序》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。