728x90 퀵 정렬2 c언어 - 퀵 정렬 (QuickSort) 퀵 정렬은 이름처럼 빠른 정렬이다. 퀵 정렬은 적절한 하나의 기준(피벗)을 잡고 피벗을 기준으로 삼아 값들을 정렬해나간다. 피벗(pivot)을 어떻게 설정하느냐에 따라 정렬 시간에 큰 영향을 준다. 그래서 최악의 경우 O(n^2)의 시간이 걸릴 수 있다. 피벗을 기준으로 작은 값은 왼쪽 큰 값은 오른쪽으로 보내면서 정렬해간다. 정렬할 리스트가 1~0일때 까지 반복하는 정렬이다. 글로 설명하는건 쉬우나 코딩할때 조금 꼬일수있으니 주의하면서 코딩해보자. low, high 을 좌표로 잡고 피벗과 비교하면서 low 는 피벗보다 큰 수를 high 는 피벗보다 작은수를 서로 교환한다. low 와 high가 교차하는 순간 low 와 피벗을 교체한다. 그리고 피벗을 기준으로 -1, +1 한 값을 재귀함수를 이용하여 퀵.. 2020. 12. 25. C언어 - 정렬 (Sort) 정렬이란 Computer Science 에서 정렬 알고리즘은 데이터를 일정한 순서로 나열하는것이다. 흔히 사용되는 것은 숫자 정렬과 문자 정렬 (사전순 정렬)이다. 좋은 정렬을 만들기 위해 알고리즘의 최적화가 중요하다. 정렬에는 다양한 종류가 존재한다. 크게 내부 정렬과 외부 정렬이 존재하고 내부 정렬은 하나의 배열에 저장할 수 있을 경우 사용되고 외부 정렬은 데이터가 많아 하나의 배열로 저장하기 어려울때 사용된다. 외부 정렬은 내부 정렬을 응용한 정렬이기 때문에 내부 정렬을 먼저 공부하면 된다. 내부정렬에는 순차 정렬, 버블 정렬, 선택 정렬, 삽입 정렬, 쉘 정렬, 퀵 정렬, 병합 정렬, 힙 정렬, 도수정렬 등 다양하게 존재한다. 순차 정렬 자세히 보기 버블 정렬 자세히 보기 선택 정렬 자세히 보기 .. 2020. 11. 13. 이전 1 다음 728x90