Programming/Algorithm (C++)

[백준 2750번] c언어 :: 수 정렬하기

밍동니 2020. 12. 27. 17:32

#include <stdio.h> 

int main() {

    int N;
    int i, j;
    int num[1000] = { 0 };
    int tmp;

    scanf("%d", &N);

    for (i = 0; i < N; i++) {
        scanf("%d", &num[i]);
    }


    for (i = 0; i < N - 1; i++) {
        for (j = 0; j < N-1; j++) {
            if (num[j] > num[j + 1]) {
                tmp = num[j];
                num[j] = num[j + 1];
                num[j + 1] = tmp;
            }
        }
    }



    for (i = 0; i < N; i++)
        printf("%d\n", num[i]);

    return 0;

}

왜 맨첫번째 자꾸 0이 나오는지 고민하다 해결

N-1 둘다 해 줘야해용

 

거품 정렬

ko.wikipedia.org/wiki/%EA%B1%B0%ED%92%88_%EC%A0%95%EB%A0%AC

 

거품 정렬 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 무작위 배열수의 거품 정렬 예 거품 정렬( - 整列, 영어: bubble sort, sinking sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도가 O ( n 2 ) {\displaystyl

ko.wikipedia.org

거품 정렬( - 整列, 영어: bubble sort, sinking sort)은 두 인접한 원소를 검사하여 정렬하는 방법이다. 시간 복잡도 {\displaystyle O(n^{2})}

로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이다. 양방향으로 번갈아 수행하면 칵테일 정렬이 된다.

 

칵테일 정렬 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 칵테일 셰이커 정렬(cocktail shaker sort)[1]은 양방향 거품 정렬(bidirectional bubble sort)[2] 또는 셰이커 정렬(shaker sort) 등으로도 불리는 거품 정렬의 변형이다. 거품 정

ko.wikipedia.org

 1#include <stdio.h>
 2# define MAX 10
 3
 4int* bubble_sort(int arr[], int n) {
 5    int i, j, temp;
 6    for (i=n-1; i>0; i--) {
 7        for (j=0; j<i; j++) {
 8            if (arr[j] > arr[j+1]) {
 9                temp = arr[j];
10                arr[j] = arr[j+1];
11                arr[j+1] = temp;
12            }
13        }
14    }
15    return arr;
16
17}
18
19int main() {
20    int arr[MAX] = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37 };
21    int* arr_new = bubble_sort(arr, MAX);
22    for (int i = 0; i < MAX; i++) {
23        printf("%d\n", *(arr_new+i));
24    }
25    return 0;
26}