[📶sort 4] 정렬의 꽃🌷 퀵!퀵 정렬(Quick Sort) 분할 정복 알고리즘 | O(NlogN) | C언어 | C++ 코드 구현

  Рет қаралды 5,292

혀니C코딩

혀니C코딩

Күн бұрын

➡️ 소스코드 : cafe.naver.com...
O(NlogN)의 시간 복잡도를 갖는 퀵 정렬 알고리즘에 대해 설명하고, 코드로 구현합니다.
김수현 강사 cafe.naver.com/honeyc
구독!!! 좋아요!!! 알림 설정!!! 부탁 드려요!!!
#김수현강사 #c언어 #혀니C #혀니씨 #자료구조 #알고리즘 #C++ #코딩인터뷰 #코딩테스트 #프로그래밍 #IT학원 #C언어학원 #IT취업 #포인터 #정보처리기사 #정보처리산업기사 #정보 #공시 #전산직 #공무원 #군무원 # 계리직 #임용

Пікірлер: 32
@withhoneyc
@withhoneyc Жыл бұрын
➡️ 소스코드 : cafe.naver.com/honeyc/46340
@user-du5em1vc4e
@user-du5em1vc4e 5 ай бұрын
레전드......................... 이해 너무 잘되네요....................... 방금 아르키메데스마냥 유레카를 외치고 오는 길입니다 감사합니다
@withhoneyc
@withhoneyc 5 ай бұрын
어려운 내용인데 잘 이해가 되셨다니 너무 기쁘네용😁
@classbinu
@classbinu 11 ай бұрын
퀵 소트 정렬 개념이 너무 쉽게 이해됩니다!👍
@withhoneyc
@withhoneyc 11 ай бұрын
쉽다니!!!ㅎㅎ 대단하시네용:)
@라면-f3i
@라면-f3i 2 ай бұрын
정말 이쪽 분야는 천재들만 살아남을 수 있는 영역인 건가 ㅠㅠ 그래도 선생님 덕분에 조금은 이해한 것 같습니다. 퀵 정렬 마주칠 때마다 다시 와서 반복하겠습니다. 감사합니다.
@withhoneyc
@withhoneyc 2 ай бұрын
ㅎㅎㅎㅎㅎ 천재만 살아 남았음 전 이미 사망했습니다^^ 홧팅하세요!!!👍
@uno970
@uno970 Жыл бұрын
선생님 강의는 어려웠던 문제도 쉽게 이해가 가네용ㅜㅜ 항상 좋은 강의 감사드립니당❤❤
@withhoneyc
@withhoneyc Жыл бұрын
ㅎㅎㅎ 정말 감사합니다😊
@이정현-x8p
@이정현-x8p Жыл бұрын
감사합니다!
@사쿠노
@사쿠노 10 ай бұрын
코드도 쉽게 풀어주셔서 쉽게 이해했네요 감사합니다.
@withhoneyc
@withhoneyc 10 ай бұрын
와 이해 되셨다니 저도 기쁘네용:)
@킴키-o1y
@킴키-o1y 8 ай бұрын
감사합니다~~~
@킴키-o1y
@킴키-o1y 8 ай бұрын
left는 0이고. . right는 n-1인데. . 흠 . .
@withhoneyc
@withhoneyc 8 ай бұрын
@user-sb7op4zf8j ㅋㅋㅋㅋ 어려우시죠?
@킴키-o1y
@킴키-o1y 8 ай бұрын
넹 ~
@TeiHyunChoi
@TeiHyunChoi Жыл бұрын
"pivot과 비교했을 때 조건이 맞으면 통과한다" 개념이 퀵 정렬 이해하는데 큰 도움이 되었습니다. 좋은 강의 감사합니다(__)
@withhoneyc
@withhoneyc Жыл бұрын
피벗 통과 축하 드려요!! 😊
@BusuBong
@BusuBong 3 ай бұрын
선생님 강의가 이해될수록 이뻐보이는데 정상입니까
@withhoneyc
@withhoneyc 3 ай бұрын
비정상입니다! 이해 안되셔도 예뻐야 합니다! ㅋㅋㅋㅋㅋㅋㅋ
@lmsn4184
@lmsn4184 8 ай бұрын
선생님이 짜신대로 마지막에 재귀를 호출할 때 if (left < PR) quick_sort(arr, left, PR); if (PL < right) quick_sort(arr, PL, right); 처럼 코드를 작성하면 가장 마지막 재귀에서 하나의 원소만 남는게 아니라 두개의 원소가 남잖아요. (예를들어 계속 재귀를 거쳐서 left = 0, right = 1 이 재귀함수에 들어온 상황이면 pivot =0, PL = 1, PR = -1 혹은 pivot =0, PL = 1, PR = 0 인 둘 중 하나인 상황인데, 두 경우 모두 if문을 만족하지 못하기 때문에 재귀를 호출하지 않아요. 다시말해 재귀의 끝인 상황인데, 배열에 두원소가 있다고 고려한게 마지막 상태가 되었다는 것이지요.) 하나의 원소가 남을 때까지 쪼개야하는 원칙을 엄밀하게 지키려면 함수 마지막에서 if문으로 재귀호출을 부르지 않고 quick_sort(arr, left, PR); quick_sort(arr, PL, right); 만 적어서 무조건 재귀가 일어나게 만든 다음에, 함수 도입부분에서 따로 종료조건을 if (left < PR) return; if (PL < right) return; 로 주는 게 엄밀하게 하나의 원소만 남을 때까지 재귀적으로 쪼개는 방법이겠죵??
@withhoneyc
@withhoneyc 8 ай бұрын
두 개가 남았을 경우 값을 교환한 후 말씀하신 pL과 pR의 상태가 되기 때문에 이미 정렬된 상태로 유지가 됩니다. 즉, 한 개가 남은 경우는 정렬된 상태입니다.
@afjbj166
@afjbj166 9 ай бұрын
선생님 안녕하세요 :) 덕분에 정렬 부분 학습 중입니다. 감사합니다!!! 피벗 5로 첫 번째 정렬 후, 피벗 1로 왼쪽 정렬 하는 부분 질문드립니다. 1 3 4 2로 남고 끝나는게 아닌지... 왼쪽 배열의 분할 정복에서 강의에서 보여주신 피벗이 5인 경우, 3 1 4 2로 정렬이 되고, 이 때 재귀호출을 하면 [1]인덱스의 1이 피벗이 되잖아요? 3은 1보다 크니까 멈추고, pR은 2, 4 통과 후 1은 피벗과 값이 동일하니 pR은 여기서 멈추고, 3과 1을 변경하면 1 3 4 2가 되고 pL++ / pR-- 하니까 서로 교차되어 while문 탈출, left = 0, pR = 0 이 되서 1 3 4 2로 남게되는게 아닌가요? 헷갈려서 질문드립니다.. 분명 제가 빠뜨린게 있는 것 같은데 ㅠㅠ 지적해주시면 감사하겠습니다.
@withhoneyc
@withhoneyc 9 ай бұрын
1342가 되면 말씀하신대로 왼쪽 정렬이 끝나게 됩니다. 그럼 이제 오른쪽 정렬을 하러 가겠죠? 3은 left가 되고 2는 right가 되어 다시 피벗을 구해 왼쪽 오른쪽으로 나눠 왼쪽 정렬을 수행하게 됩니다.
@withhoneyc
@withhoneyc 9 ай бұрын
질문 내용을 보니 아주 잘 이해하고 계신거 같네요:) 홧팅입니다!!!
@afjbj166
@afjbj166 9 ай бұрын
@@withhoneyc 선생님,, 다시 보니 제가 재귀호출 하는 부분에서 1342 후 342 right 넘기는 부부분을 못봤네요..! 긴 댓글인데도 확인해주시고 답변 달아주셔서 정말 정말 감사합니다. 그렇게 말해주시니 동기부여가 되서 더 재밌게 듣게되네요 ^_^ 주말 잘 보내세요 선생님
@승민-v8t
@승민-v8t 8 ай бұрын
if(PL pivot) PL++; while (arr[PR] > pivot) PR--; 로 문제없이 돌아가는거 아닌가요?
@승민-v8t
@승민-v8t 8 ай бұрын
아 PL == PR 인 경우에는 값이 바뀌어도 두 while문의 조건을 여전히 충족하지 못하기 때문에 PL, PR의 값이 불변하여 무한 반복되는 것을 방지하기 위해 해주는 건가요?
@withhoneyc
@withhoneyc 8 ай бұрын
네(: while문내에서 pL이나 pR을 증감 했을 때 두 값이 같은 위치에 있는 경우가 있습니다. 그 경우 같은 위치의 값을 변경한 후(사실은 같은 위치기 때문에 그 값 그대로 유지됨) pL과 pR을 증감 시킵니다. 결국 pL과 pR 사이에는 중간 한 개의 값이 남게 됩니다.
@user-zh7go9ds3e1
@user-zh7go9ds3e1 Жыл бұрын
재귀.. 어렵네요..
@withhoneyc
@withhoneyc Жыл бұрын
네 ㅠ 어려워요
GIANT Gummy Worm Pt.6 #shorts
00:46
Mr DegrEE
Рет қаралды 13 МЛН
How Strong is Tin Foil? 💪
00:26
Preston
Рет қаралды 71 МЛН
АЗАРТНИК 4 |СЕЗОН 2 Серия
31:45
Inter Production
Рет қаралды 1 МЛН
퀵소트 / 퀵정렬 5분만에 이해하기 - Gunny
13:21
코딩하는거니
Рет қаралды 67 М.
Sorting Algorithms Explained in 10 min
10:50
노마드 코더 Nomad Coders
Рет қаралды 74 М.
코딩테스트, 기초, 퀵 정렬.  quick sort. 퀵 소트
12:00
코드없는 프로그래밍
Рет қаралды 9 М.
GIANT Gummy Worm Pt.6 #shorts
00:46
Mr DegrEE
Рет қаралды 13 МЛН