美文网首页
数组中按照数组中的值进行降序(升序)

数组中按照数组中的值进行降序(升序)

作者: 一座被占用 | 来源:发表于2016-12-21 16:44 被阅读0次

    这个问题在我找工作期间,面试题中出现过,后来还专门整理了面试题,其实很简单。但是在项目中遇到这个问题的时候居然还是想不出来思路(打脸,piapiapia)在这里还是整理一下比较好。以后再遇到的时候别再不会了哦!!!!

    假设有一个数组A(咦,怎么老是它)值为【29,14,7,100,20】,如果我们将它降序,最终的结果应该是【100,29,20,14,7】,这里数组的长度为5

    然后说一下思路吧。

    先取数组A的第一位的数值也就是A[0],值为29,然后跟第二位数(14)进行比较,如果第一位比第二位大就continue,如果第一位比第二位小就交换两个值的顺序。很显然这里是前者。

    然后第二位和第三位比较,显然跟第一次比较结果一样。

    然后就是第三位(7)和第四位(100)比较,这里就是规则的后者了,这里就需要将7和100交换位置,数组A就变成了【29,14,100,7,20】

    继续比较第四位(7)和第五位(20)比较,这里还是需要交换位置,变成了【29,14,100,20,7】,这里就可以看到最小的数值(7)已经在数组的最后了

    第一轮比较结束,然后就是第二轮,第二轮要注意的地方是:只比较数组的前4位(因为在第一轮的时候已经将最小的值放到了最后)。然后就是一次推了,推到第4轮的时候就可以得到我们想要的数组了。

    第一轮比较 第二轮比较

    第二轮比较过后,倒数第二大的数(14)也就到了它该到的位置了。然后我们看下代码:

    执行结果:

    嗯,这样的思路还是要有的。另外补充一个数组倒序的方法:Array.reverse()


    下面是2017年的补充:

    数组的sort()方法:从数组上对数组进行排序

    相关文章

      网友评论

          本文标题:数组中按照数组中的值进行降序(升序)

          本文链接:https://www.haomeiwen.com/subject/oimqvttx.html