컴퓨터 프로그래밍 공부/자료구조와 알고리즘

버블소트 구현

게임 개발 2024. 8. 15. 15:47
struct Int
{
    int n;
    bool check;
};

void BubbleSort(vector<Int> arr)
{
    int swapCount = 0;
    int compareCount = 0;
    vector<int> minusIdx;
    for (int i = 0; i < arr.size(); i++)
    {
        for (int j = arr.size() - 1; j > i; j--)
        {
            if (arr[j-1].n > arr[j].n)
            {
                swap(arr[j-1], arr[j]);
                //arr[i].check = true;
                arr[j].check = true;
                swapCount++;
            }
            compareCount++;
        }
        cout << endl << "비교 횟수 : " << compareCount << endl;
        cout << endl << "교환 횟수 : " << swapCount << endl;
    }
    for (int i = 0; i < arr.size(); i++)
    {
        if (arr[i].check == false)
            arr[i].n *= -1;
        printf("%d ", arr[i].n);
    }
}


int main(void)
{
    vector<Int> arr = { {6,false}, {4,false},{3,false},{7,false},{1,false},{9,false},{8,false} };
    BubbleSort(arr);

    return 0;
}

'컴퓨터 프로그래밍 공부 > 자료구조와 알고리즘' 카테고리의 다른 글

테이블과 해쉬  (2) 2024.10.15
AVL  (0) 2024.09.21
Stack 구현하기  (0) 2024.08.02
완벽한 해싱 & 유니버설 해싱  (0) 2024.06.15
삽입 정렬과 힙 정렬  (0) 2024.06.12