数组:升序和降序

升序

//以下nums为数组


1. JAVA的升序直接用Arrays.sort(nums)。
1. C++则是sort(start,end)。 * eg.`这里的start和end是地址参数,例如nums数组有5个元素,那么对其升序排序应该为sort(nums,nums+5);`

降序

1. JAVA的降序是Arrays.sort(nums,Collections.reverseOrder()),但由于此方法不支持基本类型(int,float,double,char等),所以在使用的时候要将int型转换为Integer,flaot为Float。
这里的Integer型转换为int型可以用Integer.valueOf(num)。

例如.

public static void main(String args[]){
      Integer[] nums = {2,3,1,4,5};
      Arrays.sort(nums,Collections.reverseOrder());
      int[] tmp = new int[nums.length];
      for(int i  = 0;i < nums.length;++i){
            tmp[i] = Integer.valueOf(nums[i]);
      }
      for(int i : tmp){
            System.out.print(i + " ");
      }
}

结果图:

2. C++则是用sort(nums,nums + 5,compare);


#include <algorithm>
#include<iostream>

using namespace std; 

bool compare(a,b){
      return a > b;//降序排列,如果改成a < b则为升序
}

int main(){
      int nums[] = {2,3,1,4,5};
      sort(nums,nums + 5,compare);
      for(int i = 0;i < 20;++i)
            cout<<nums[i]<<endl;
      return 0;
}

结果图:

FAQ

  • 在这里sort调用头文件#include,然而在编译过程出现了sort was not declared,经过搜索,加上using namespace std;即可。
  • C++的sort()中第一和第二个参数是地址,分别为数组的起始地址first和结束地址last,最后的参数是排序的方法,需自己编辑。
posted @ 2020-11-10 15:03  acchris  阅读(822)  评论(0)    收藏  举报