默认情况下,()方法的一个参数按升序排列。您需要按照降序排列第一个方法调用重载的两个参数的(t[]a,comaparatorc)。第二个参数需要定制一个比较器类来实现comparator接口,并根据需要重新比较该方法。
第二种方法是按升序排列,然后调用arraysaslist方法将其转换为数组,然后调用collections逆序方法以逆序排列它,最后调用collectionstoarray方法将其转换为数组。
参考代码:
#包含ltstdio.hgt
#包括
这是平时经常使用的一种排序方法,很好理解。
快速排序:第一种最简单,直接排序:
公共静态voidmain(string[]args){
int[]arr{4,3,5,1,7,9,3}
(安排)
对于(国际:安排){
㈠
}
单击运行输出排序后的数组编号。
2.部分排序法:也可以选择一些你要排序的数字,比如对下角编号为1~4的数字进行排序,其他数字的顺序不变。
公共静态voidmain(string[]args){
int[]arr{4,3,5,1,2,9,3,0}
(排列1,4)
for(inti0iltarr.l
字母和数字都是字符,一视同仁。利用库函数strcmp的比较,可以使用常用的冒泡、选择和快速方法。
【示例】将一个整数按大小顺序插入到有序数组中。为了将一个数按大小插入到有序数组中,首先要确定排序是从大到小还是从小到大。如果排序是从最大到最小,那么要插入的数字可以和数组中的数字一一比较。当找到比插入数小的第一个元素i时,它就是之前的插入位置。然后,从数组的最后一个元素到那个元素,一个接一个地向后移动一个单位。最后,将插入编号赋予元素i。如果插入编号小于所有元素值,则插入最后一个位置。
主()
{
inti,j,p,q,s,n,a[11]{127,3,6,28,54,68,87,105,162,18}
用于(ioilt10i)
piqa[i]
对于(冀1jlt10j)
if(qlta[j]){pjqa[j]}
如果(p!我)
{
sa[i]
a[i]a[p]
a[p]s
}
printf(