sort必须返回一个值怎么解决,sort没有返回值

http://www.itjxue.com  2023-01-04 15:45  来源:未知  点击次数: 

关于Array的sort()方法,一点疑惑求解答

sort() 方法用于对数组的元素进行排序。语法arrayObject.sort(sortby)参数描述sortby可选。规定排序顺序。必须是函数。返回值对数组的引用。请注意,数组在原数组上进行排序,不生成副本。说明如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。 若 a 等于 b,则返回 0。 若 a 大于 b,则返回一个大于 0 的值。 提示和注释注释:您可使用负值从数组的尾部选取元素。注释:如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。实例例子 1在本例中,我们将创建一个数组,并按字母顺序进行排序:script type="text/javascript"var arr = new Array(6)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"arr[3] = "James"arr[4] = "Adrew"arr[5] = "Martin"document.write(arr + "

")document.write(arr.sort())/script输出:George,John,Thomas,James,Adrew,MartinAdrew,George,James,John,Martin,Thomas例子 2在本例中,我们将创建一个数组,并按字母顺序进行排序:script type="text/javascript"var arr = new Array(6)arr[0] = "10"arr[1] = "5"arr[2] = "40"arr[3] = "25"arr[4] = "1000"arr[5] = "1"document.write(arr + "

")document.write(arr.sort())/script输出:10,5,40,25,1000,11,10,1000,25,40,5请注意,上面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:script type="text/javascript"function sortNumber(a,b){return a - b}var arr = new Array(6)arr[0] = "10"arr[1] = "5"arr[2] = "40"arr[3] = "25"arr[4] = "1000"arr[5] = "1"document.write(arr + "

")document.write(arr.sort(sortNumber))/script输出:10,5,40,25,1000,11,5,10,25,40,1000

当前上下文中不存在名称“sort”,怎么办,明明有定义的啊。

public int[] Sort(int[] list) //这里你的Sort方法原来用void来修饰,不返回值

{

for (int i = 0; i list.Length - 1; i++)

{

min = i;

for (int j = i + 1; j list.Length; j++)

{

if (list[j] list[min])

min = j;

}

int t = list[min];

list[min] = list[i];

list[i] = t;

}

return list;//这里还需要写一个返回值

}

使用sort() 对数组进行排序

注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

若返回值=-1,则表示 A 在排序后的序列中出现在 B 之前。

若返回值-1 1,则表示 A 和 B 具有相同的排序顺序。

若返回值=1,则表示 A 在排序后的序列中出现在 B 之后。

请教:为什么document.write(arr.sort(sortNumber))中没有给sortNumber(a,b)传参数,就可以返回一个值

sort里面的函数是根据返回值对数组进行排序的,他提供一个方法可以让你自己对排序定义,内部的原理,不需要了解,但是默认的排序方法都是传入两个数字,然后比较排序,在传入两个进行比较排序

arr.sort(fn) 这个里面的fn是排序方法,排序是根据fn的返回值进行的排序

fn为返回负数的时候 a排在b前面

0 的时候 无需调整

正数的时候 a排在b后面

fn(a,b)

我看这个的地方也感觉很困惑,想了解内部原因,你要找到js sort函数是怎么定义的才行

Java数组排序,请问sort方法返回值为啥是void?要是数组类型,返回一个arr怎么结果是地址

String[] namesStudent = new String[st.names.length]; //创建数组////这一步创建数组 namesStudent = st.getNames(); //引用数组///////这一步使得namesStudent指向names的内存地址 不明白为什么要调用两遍st.getNames()方法

C语言问题SORT函数

楼上两位好像都有问题,这个函数传的是数组首地址,所以不需要返回值,for循环是需要大括号的。 改了一下: void sort(int array[],int n) { int i,j,k,temp; for(i=0;in-1;i++) {k=i; for(j=k+1;jn;j++) if(array[k]array[j]) k=j; temp=array[i]; array[i]=array[k]; array[k]=temp; } }

(责任编辑:IT教学网)

更多

推荐站内动态文章