Java 4-5) Sorting 정렬 _ 선택정렬, swap

Java 4-5) Sorting 정렬 _ 선택정렬, swap

* 정렬 Sorting

- 데이터가 마구잡이로 나열되어있을 때 순서대로 정렬

- 맨 앞 숫자를 그 다음 숫자부터 끝까지 비교하면서 자리를 옮겨줌

- 선택, 삽입, 버블, 합병, 퀵(알고리즘)

* 예시

3, 5, 1, 4, 2를 정렬하라

int number[] = {3, 5, 1, 4, 2}; int temp; for (int i = 0; i < number.length - 1; i++) { // 첫번째 자리 비교, 마지막자리는 비교하지 않아도 됨 for(int j = i + 1; j < number.length; j++) { // 그 다음 자리 비교 (i는 0번째, j는 1번째부터) if(number[i] > number[j]) { // 교환처리(swap) , 오름차순 정렬로(<, 내림차순) temp = number[i]; number[i] = number[j]; number[j] = temp; } } } System.out.println(Arrays.toString(number));

* 예제

* 정렬프로그램 만들기

- user 몇개의 숫자를 정렬할지 입력받기

- 개수를 결정

- 숫자들을 입력받기

- 오름차순/내림차순 골라라

- 정렬처리

- 결과 출력

Scanner sc = new Scanner(System.in); // 변수 선언, 배열은 초기화까지 했음 int count; // 몇개를 정렬할지의 변수 int number[] = null; // 결정된 것이 없어서 null int updown; // 입력 // user 몇개의 숫자를 정렬? // 개수를 결정 System.out.print("몇개의 숫자를 정렬하시겠습니까?"); count = sc.nextInt(); number = new int[count]; // 숫자들을 입력 for (int i = 0; i < number.length; i++) { System.out.print((i+1) + "번째 수 = "); number[i] = sc.nextInt(); } // 오름차순/내림차순 골라라 System.out.print("오름(1)/내림(2) = "); updown = sc.nextInt(); // 정렬처리 (swap) int temp; // 변수 선언 밑에다가 적어도 됨 for (int i = 0; i < number.length - 1; i++) { System.out.println("i = " + i); // 실행해보기 for (int j = i + 1; j < number.length; j++) { System.out.println("\tj = " + j); // 실행해보기 if(updown == 1) { // 오름차순 if(number[i] > number[j]) { temp = number[i]; number[i] = number[j]; number[j] = temp; } } else { // 내림차순 if(number[i] < number[j]) { temp = number[i]; number[i] = number[j]; number[j] = temp; } } } } // 결과 출력 System.out.println(Arrays.toString(number));

from http://greencolin-developer.tistory.com/24 by ccl(A) rewrite - 2021-12-12 03:01:59