数组:升序和降序
升序
//以下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,最后的参数是排序的方法,需自己编辑。