정렬 알고리즘
2022. 12. 3. 15:26ㆍ개인공부/C++
정렬 알고리즘
c++ 강의에서 배운 가변정렬값을 버블정렬 함수를 구현해서 정렬하는것이 과제였다.
먼저 배열에 랜덤한 값들을 대입해서 정렬되지 않은 배열을 생성하였다.
사용법으로는 먼저 srand(time(NULL)) 을 이용하여 초기화 시켜준다 이 과정이 없으면 항상 같은 배열 값을 가진다.
그후에는 rand() 을 이용하면 0~19까지 값을 랜덤하게 정해주고 1을 더해주어 범위는 1~20으로 설정하였다.
버블 정렬
버블 정렬은 기본적으로 배열의 두 수를 선택한 뒤, 만약 그 두 수가 정렬되었다면 놔두고 아니라면 두 수를 바꾸는 방식으로 진행된다. 오름차순으로 정렬할 때는 , 내림차순이라면 여야 정렬된 것으로 판단한다. 이를 배열의 처음부터 끝까지 반복한다. 위 알고리즘을 배열에 아무 변화가 없을 때까지 반복한다.
위와같은 알고리즘을 구현하기 위해서 먼저 가변배열 구조체 주소를 받아 시작하는 함수를 구현하였다
이와같은 방식으로 구현하고 또 다른 쉬운 2가지 정렬을 구현했다.
선택 정렬
삽입 정렬
이함수들을 이용하여 결과값을 확인하였다.
가장위에 줄이 정렬되지 않은 배열이고 각 순서로 버블, 선택, 삽입 정렬을 이용하였다
위의 코드를 보면 선택정렬의 경우 오름차순으로 구성하였다.
다음기회에는 또다른 정렬도 구현해볼 예정이다.
힙정렬 , 합병, 퀵 정렬 3가지