sort
-
V language : Sleep Sort컴퓨터/V language 2020. 8. 22. 16:01
Sleep Sort Sleep sort란 4chan에 장난식으로 올라온 정렬 방법 task + time.sleep()을 이용해서 배열 값 만큼 sleep해서 먼저 출력되는 순서대로 보면 정렬된 배열이다. 1. 문법 살펴보기 V에서 concurrency(병행)으로 task를 실행하려면 go func()을 사용하면 된다. ※ 하지만, 다른 mutable 변수를 사용할 수 없어서, 출력 값을 저장하진 못했다. ※ V 0.1.29 기준으로 Global 변수도 없다. import sync import time fn task(id, duration int, mut wg sync.WaitGroup) { println("task ${id} begin") time.sleep_ms(duration) println("tas..
-
V language : Introspective Sort컴퓨터/V language 2020. 8. 20. 14:58
Introspective Sort IntroSort (Introspective Sort) 인트로 정렬은, Quick Sort의 장점을 유지하면서, 최악 시나리오 O(n^2)를 해결하려 만들어진 (Quick Sort + Heap Sort + Insertion Sort) 하이브리드 알고리즘이다. (C++ 기본 정렬 알고리즘, std::sort) 모든 상황에서 시간 복잡도 : O(nlogn), 공간 복잡도는 O(logn)이며, inplace, not stable한 알고리즘이다. (in-place란, 보조 데이터 구조를 사용하지 않고, 작동하는 알고리즘) Quick Sort로 시작해서, Recursion max-depth (log(len(array)) 에 도달하면 Heap Sort로 정렬하고, 그리고, 파티션 ..
-
V language : Insertion Sort컴퓨터/V language 2020. 8. 19. 14:25
Insertion Sort 1. 문법 살펴보기 (syntax) 우선 Go언어와 같이 V언어도 while이 없고, for을 사용한다. for i range(1, len(array)) key := array[i] mut j := i - 1 for j >= 0 && key < array[j] { array[j + 1] = array[j] j-- } array[j + 1] = key } // println('${array[i]}') } Github 풀 소스 참고
-
V langauge : Bubble Sort컴퓨터/V language 2020. 8. 18. 22:06
Bubble Sort 1. 문법 소개 For in range 파이썬에서 5번 Hello World를 출력하려면 아래와 같은데, # Python for _ in range(5): print('Hello World') V 언어에서는 range를 .. 으로 표시한다. // V for _ in 0..5 { println('Hello World') } String println println('${array[i]}') // 배열 array[i]를 출력하려면 println($test_arr) // test_arr를 출력하려면 2. Bubble Sort fn main() { mut test_arr := [1, -1, 0, 5, 3, 10] bubble_sort(mut test_arr) println('Result :..
-
파이썬 Smooth Sort (부드러운 정렬 알고리즘)컴퓨터/파이썬 2020. 8. 3. 13:12
Smooth Sort 소개 : 부드러운 정렬은 길 찾기로 유명한 데이크스트라분이 1981년에 발표한 정렬 알고리즘이다. HeapSort의 변형 중 하나이며, in-place, not stable 시간 복잡도는 최고 : O($n$) = (대부분 정렬된 상태일 경우) 평균 : O($nlogn$), 최악 : O($nlogn$) 공간 복잡도는 총 O($n$), 보조(O($1$)) 특이한 점은 Leonardo number라는 수학 개념을 Heap Sort에 적용시킨 점이다. 1. Leonardo Number 피보나치 수열과 비슷한데, 다음과 같이 진행된다. $1, 1, 3, 5, 9, 15, 25, 41, 67, 109, 177, 287, 465, 753, 1219, 1973, 3193, 5167, 8361 ....