问题描述:
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
输入格式
第一行为一个整数n。
第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。
输出格式
输出一行,按从小到大的顺序输出排序后的数列。
样例输入
5
8 3 6 4 9
样例输出
3 4 6 8 9
import java.util.Arrays;
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int arr[] = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
for (int j = 0; j < arr.length; j++) {
System.out.print(arr[j] + " ");
}
}
}
输出样例
问题描述
逆置数组
public static void revserse(int[] array){
if (array == null){
return;
}
int i = 0;
int j = array.length-1;
while ( i< j){
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
i++;
j--;
}
}
数组数字排列
给定一个整型数组, 将所有的偶数放在前半部分, 将所有的奇数放在数组后半部分
基本思路
设定两个下标分别指向第一个元素和最后一个元素. 用前一个下标从左往右找到第一个奇数, 用后一个下标从右往左找到第一个偶数, 然后交换两个位置的元素. 依次循环即可.
public static void func(int[] array){
int i = 0;
int j = array.length-1;
while (i < j){
while ( i < j && array[i] % 2==0){
i++;
}
while (i< j && array[j] % 2 != 0){
j--;
}
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}