排序问题
【问题描述】从键盘终端输入若干整数(不超过50个),将其中的基数按从小到大原地排序(奇数递增排序,偶数原地不变),输出排序后的结果。
【输入形式】二行,第一行:整数个数,第二行:待排序整数
【输出形式】按规则排序后的整数以空格间隔输出
【样例输入】
20
76 14 63 79 64 18 11 29 54 20 63 90 29 18 79 36 84 10 45 89
【样例输出】76 14 11 29 64 18 29 45 54 20 63 90 63 18 79 36 84 10 79 89
【样例说明】
【评分标准】
package cg;
import java.util.Scanner;
public class Main {
public static void sortOfOdd(int []p) {
int k;
for(int i=1; i<p.length; i++) {
if(p[i-1]%2==0)
continue;
k=i-1;
for(int j=i; j<p.length; j++) {
if(p[j]%2==1&&p[j]<p[k]) {
k=j;
}
}
int temp;
temp=p[i-1];
p[i-1]=p[k];
p[k]=temp;
}
}
public static void printArr(int []p) {
for(int i=0; i<p.length; i++)
System.out.print(p[i]+" ");
}
public static void main(String[] args) {
int n;
int arr[];
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
arr=new int[n];
for(int i=0;i<arr.length;i++){
arr[i]=sc.nextInt();
}
sortOfOdd(arr);
printArr(arr);
sc.close();
}
}