otter66   3년 전

퀵정렬 너무 어렵습니다.... 도와주세요 고수님들...

퀵정렬은 빠른게 아니었나요..??

최악의 경우가 있기 때문인걸까요... 최악의 경우라고 해도 선택정렬정도일텐데...

제가 알고리즘을 구현하면서 실수가 있던건가요ㅠㅠ?

seawon0808   3년 전

그냥 sort함수를 쓰세요.

otter66   3년 전

퀵소트를 공부하고싶을뿐인데욥....

sort함수는 이미 충분히 쓰고있습니다..

seawon0808   3년 전

그런데 이 문제는 sort함수만 써야지 시간초과가 안나는 것일 수도 있습니다.

그러므로 완벽한 퀵소트를 사용한 코드가 있어도 시간초과가 날 수도 있습니다.

otter66   3년 전

이 문제가 선택정렬로도 통과가 되는 문제라...

그렇다면 최악의 경우 퀵정렬이 선택정렬보다도 많이 느릴 수가 있는건가요..?

seawon0808   3년 전

퀵정렬은 최악의 경우 n^2의 시간복잡도를 가집니다.

otter66   3년 전

유명한 알고리즘 기법 중 가장 느리다는 선택, 버블도 O(n^2)인걸로 알고있습니다.
가장 느린 선택, 버블도 통과가 되니까 퀵정렬도 통과가 되어야하는게 아닐까요? 

seawon0808   3년 전

버블정렬로 이 문제를 풀어서 백준에 제출시켜보신적이 있습니까?

seawon0808   3년 전

저는 퀵정렬을 잘 모르므로 퀵정렬을 사용한 코드로 이 문제를 맞춘사람의 코드를 보세요.

convert7342   3년 전

QuickSort를 재귀로 보내는 부분은

while문 밖에있어야합니다~

convert7342   3년 전

while(i <= j) 를 통해 키 값을 기준으로 좌 우가 나뉜뒤에 재귀로 보내야겠지요?

otter66   3년 전

아.. 그런 이상한 실수를 했군요.. 
정말 감사합니다~~~! :)

jh05013   3년 전

@seawon0808 N이 최대 1,000이므로 O(N^2)에 풀어도 됩니다.

댓글을 작성하려면 로그인해야 합니다.