Skip to Content
CoursesCSC122โปรแกรมสลับเรียงเลข

โปรแกรมสลับเรียงเลข

โจทย์

Write a program to swap elements in the given list of number such that odd numbers and even numbers are sorted.

For example, the given list of number is: 9 7 6 4 5 2

976452
OddOddEvenEvenOddEven

Odd numbers are: 9 7 5 —(sort)—> 5 7 9

Even numbers are: 6 4 2 —(sort)—> 2 4 6

Put the numbers back to the odd and even position with the sorted order as follow:

572496
OddOddEvenEvenOddEven

The final swap list is: 5 7 2 4 9 6

InputOutput
6
9 7 6 4 5 2
5 7 2 4 9 6

โค้ด

import java.util.*; public class Program { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); ArrayList<Integer> originalList = new ArrayList<>(); ArrayList<Integer> evenList = new ArrayList<>(), oddList = new ArrayList<>(); for (int i = 0; i < n; i++) { int number = scanner.nextInt(); originalList.add(number); if (number % 2 == 0) { evenList.add(number); } else { oddList.add(number); } } Collections.sort(evenList); Collections.sort(oddList); int evenListIndex = 0, oddListIndex = 0; for (int number : originalList) { int finalNumber; if (number % 2 == 0) { finalNumber = evenList.get(evenListIndex); evenListIndex++; } else { finalNumber = oddList.get(oddListIndex); oddListIndex++; } System.out.print(finalNumber + " "); } } }

คำอธิบาย

ปรับปรุงล่าสุด