利用sort()方法给数组排序

首先,我们先认识下sort()方法

我们在VS中敲出如下代码

我们会得到如下运行

如果我们修改一下呢

会得到

可以看到,sort()方法,是按照字符(数字0-9或者字母a-z)来排序的,先按照第一个字符排序

如果第一个字符相同,再比较第二个字符,以此类推。

所以,如果是纯数字的数组,则会比较数字

如果我们需要按照每个数字的大小来实现升序或者降序排列呢?我们需要用到函数~

那么里面return a-b;该怎么理解呢?

W3SCHOOL这样给我们解释

首先,我们需要知道,sort的比较方法,类似于我们用for循环的“选择排序

比如我给的例子:会将1取出来,依次和5、14、23、25、85进行比较

然后将5取出来,依次和14、23、25、85进行比较

............以此类推

所以我们可以这样理解return a-b;

当第一个数比第二个数大的时候,我们交换位置~~       //我们会得到一个升序的结果

如果是return b-a呢?

当第二个数比第一个数大的时候,我们交换位置~~   //我们会得到一个降序的结果

这里的a,b仅仅是一个形参的命名,同样你可以取x,y

但是,a,b的位置不能写反,如果你写(a,b),  a-b 中a就是第一个数,b就是第二个数,反之~~~

原文地址:https://www.cnblogs.com/stuartrealm/p/10705021.html