Stooge Sort
7123 단어 sort
:Introduction to Algorithms P95
T(n) = 3 * T(2*n/3) + O(1)
According to master method,this situation suits the first case.
1 ///////////////////Test Code/////////////////////////
2 #include "stdafx.h"
3 #include "stdlib.h"
4 #include <time.h>
5 #include "basic_algorithm.h"
6 #include <iostream>
7 using namespace std;
8
9
10 int _tmain(int argc, _TCHAR* argv[])
11 {
12
13 srand((unsigned)time(NULL));
14 int *arr = new int[20];
15 for(int i = 0; i < 20; ++i)
16 {
17 arr[i] = rand() % 30;
18 }
19 enzo::stooge_sort(arr,20);
20 for(int i = 0; i < 20; ++i)
21 {
22 cout << arr[i] << " ";
23 }
24 cout << endl;
25 system("pause");
26 return 0;
27 }
28
29 ///////////////////Source Code///////////////////////
30 template<typename _T>
31 void stooge_sort(_T *arr, int n)
32 {
33 stooge_sort(arr, 0, n-1);
34 }
35
36 template<typename _T>
37 void stooge_sort(_T *arr, int from, int to)
38 {
39 if(arr[to] < arr[from])
40 {
41 ez_swap(arr[to], arr[from]);
42 }
43 if(from + 1 < to)
44 {
45 int k = (to - from + 1) / 3;
46 stooge_sort(arr, from, to - k);
47 stooge_sort(arr, from + k, to);
48 stooge_sort(arr, from, to - k);
49 }
50 }
T(n) = O(n^(log(2/3, 3) > O(n^2)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
VHDL로 작성된 병합 분류기 (워드 비교기)다른 기사 를 참조해 주세요. 이 문서에서는 병합 분류기 내부에서 사용되는 단어 비교기(Word_Compare)에 대해 설명합니다. 워드 비교기(Word_Compare)는 두 워드( 참조)를 비교하여 둘 중 하나를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.