정렬 알고리즘: JavaScript - 빠른 정렬 알고리즘🚀
* 🤓 INTRODUCTION
* 👉🏻 ABOUT QUICK SORT ALGORITHM
* 👨🏻🏫 EXPLANATION
* 🖖🏻 PESUDO CODE
* 🛠 IMPLEMENTATION
* 👩🏻💻 CODE
* 🤔 COMPLEXITY
* 🙏 THANK YOU
🤓 소개
Top of the day, my dear coders! I hope you are all having a beautiful weekend. Welcome to another chapter of the Sorting algorithms with JavaScript series. Today we are talking about the QuickSort algorithm!
Connect with me via or
⚡⚡⚡ 교육 시간!
이 시리즈의 시작부터 다양한 알고리즘에 대해 이야기하고 있습니다. 제 생각에는 알고리즘을 용어나 아이디어로 언급해야 합니다.
수학뿐만 아니라 컴퓨터 과학의 알고리즘은 일반적으로 일련의 문제를 해결하거나 계산을 수행하기 위해 잘 정의되고 컴퓨터로 구현할 수 있는 명령의 유한한 시퀀스입니다.
알고리즘은 항상 모호하지 않으며 다음 작업을 수행하는 데 사용됩니다.
그리고 훨씬 더.
중요한 것은 효과적인 알고리즘인 알고리즘이 유한한 공간과 시간 안에서 표현될 수 있다는 것입니다.
알고리즘의 개념은 고대부터 존재해 왔습니다. 나눗셈 알고리즘과 산술 알고리즘은 기원전 2500년경 고대 바빌로니아 수학자와 이집트 수학자 c.2에 의해 사용되었습니다. 기원전 1550년.
'알고리즘'이라는 단어는 페르시아 수학자 무하마드 이븐 무사 알-콰리즈미(Muhammad ibn Musa al-Khwarizmi)의 이름을 "알고리즘(algorismus)"으로 명명한 그의 지리적 기원을 나타내는 라틴어 니스바(nisba)에 뿌리를 두고 있습니다.
Algorism is the art by which at present we use those Indian figures, which number two times five. - Alexandre de Villedieu
👉🏻 퀵 정렬 알고리즘에 대하여
Quicksort is an efficient sorting algorithm. His father is a British computer scientist Tony Hoare , 생각하는 것처럼 다음 gif의 신사가 아닙니다.퀵 정렬 알고리즘은 분할 정복 알고리즘으로, 문제를 직접 해결할 수 있을 만큼 간단해질 때까지 동일하거나 관련된 유형의 두 개 이상의 하위 문제로 재귀적으로 분해하는 알고리즘입니다.
퀵 정렬 알고리즘에서 모든 실제 작업은 분할 정복 패러다임의 분할 단계에서 발생합니다.
👨🏻🏫 설명
We are dividing our sorting problem into three steps: divide, conquer, combine.
Let's take a typical subarray A[p...r]
DIVIDE: Partitioning (rearrange) the array A[p...r] into two (possibly empty) subarrays A[p...q-1] and A[q+1...r] such that each element of A[p...q-1] is less than or equal to A[q], which is, in turn, less than or equal to each element of A[q+1...r]. We are computing the index q as part of this partitioning procedure.
CONQUER: Sort the two subarrays A[p...q-1] and A[q+1...r] by recursive calls to quicksort.
COMBINE: Because the subarrays are already sorted, no work is needed to combine them: the entire array A[p...r] is now sorted.
🖖🏻 유사 코드
QUICKSORT(A: array, p, r)
1 if p < r
2 q = PARTITION(A,p,r)
3 QUICKSORT(A,p,q-1)
4 QUICKSORT(A,q+1,r)
PARTITION(A: array, p, r)
1 x = A[r]
2 i = p - 1
3 for j = p to r-1
4 if A[j] <= x
5 i = i + 1
6 swap A[i] with A[j]
7 swap A[i+1] with A[r]
8 return i+1
🛠 구현
👨🏻💻 코드
Play with code! 🚀
🤔 복잡성
Worst case: It occurs when the partitioning routine produces one subproblem with n-1 elements and one with 0 elements. If the partitioning is maximally unbalanced at every recursive level of the algorithm, the running time is Big O of n2
Best case: In the most even possible split, Partition function will produce two subproblems, each of size more than n/2, since one if of size [n/2] and one of size [n/2]-1; In this case, complexity is Big O of nlogn (Pretty good!)
🙏 읽어주셔서 감사합니다!
References:
School notes...
School books...
Khan academy
댓글을 남겨주세요, 당신에 대해 말해주세요, 당신의 일에 대해, 당신의 생각을 댓글로 남겨주세요, 저와 연결하세요!
☕ 저를 지원하고 집중하세요!
즐거운 해킹 시간 되세요! 😊
Reference
이 문제에 관하여(정렬 알고리즘: JavaScript - 빠른 정렬 알고리즘🚀), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/devlazar/sorting-algorithms-javascript-quick-sort-algorithm-p9o
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(정렬 알고리즘: JavaScript - 빠른 정렬 알고리즘🚀), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/devlazar/sorting-algorithms-javascript-quick-sort-algorithm-p9o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)