본문 바로가기
Basic C Language

#15. Array_sort(배열 정렬)

by Srff5123 2023. 4. 19.
728x90

#include <stdio.h>

void printArr(int arr[], int arrSize);
void bubbleSort(int arr[], int arrSize);
void selectionSort(int arr[], int arrSize);

int main()
{
    int arr[5] = { 3, 5, 4, 1, 2 };

    printArr(arr, sizeof(arr) / sizeof(int));   // 함수 호출
    bubbleSort(arr, sizeof(arr) / sizeof(int));
    selectionSort(arr, sizeof(arr) / sizeof(int));
    printArr(arr, sizeof(arr) / sizeof(int));

    return 0;
}

void printArr(int arr[], int arrSize)
{
    for (int i = 0; i < arrSize; i++)  // arrsize 만큼 arr 배열에 값넣기
        printf("%d ", arr[i]);
    printf("\n");
}

void bubbleSort(int arr[], int arrSize)
{
    for (int i = 0; i < arrSize; i++)
    {
        for (int j = 0; j < (arrSize - 1) - i; j++)
        {
            if (arr[j] > arr[j + 1]) // arr[j]번쨰의 값이 j+1의 자리보다 큰 경우 비교하여
            {
                int temp = arr[j];        //내림차 순으로 정렬     
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

void selectionSort(int arr[], int arrSize)   //선택 정렬(오름차순)
{
    int minIndex = 0;

    for (int i = 0; i < arrSize - 1; i++)
    {
        minIndex = i;
        for (int j = i + 1; j < arrSize; j++)
        {
            if (arr[j] < arr[minIndex])
                minIndex = j;    
        }

        int temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}

728x90

'Basic C Language' 카테고리의 다른 글

#17 . 별로 간단한 모양 찍기  (0) 2023.04.19
#16. 2D_array  (0) 2023.04.19
#14. Array(배열)  (0) 2023.04.19
#13. Function 2  (1) 2023.04.19
#12. Function(함수)  (0) 2023.04.19