Testing QuickSort Optimization Implementations in hello-algo
This test suite implements and validates different variants of QuickSort algorithm implementations in Go, including standard QuickSort, median-pivot optimization, and tail-call optimization. The tests verify the correct sorting functionality and optimization techniques.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
krahets/hello-algo
zh-hant/codes/go/chapter_sorting/quick_sort_test.go
// File: quick_sort_test.go
// Created Time: 2022-12-12
// Author: msk397 ([email protected])
package chapter_sorting
import (
"fmt"
"testing"
)
// 快速排序
func TestQuickSort(t *testing.T) {
q := quickSort{}
nums := []int{4, 1, 3, 1, 5, 2}
q.quickSort(nums, 0, len(nums)-1)
fmt.Println("快速排序完成後 nums = ", nums)
}
// 快速排序(中位基準數最佳化)
func TestQuickSortMedian(t *testing.T) {
q := quickSortMedian{}
nums := []int{4, 1, 3, 1, 5, 2}
q.quickSort(nums, 0, len(nums)-1)
fmt.Println("快速排序(中位基準數最佳化)完成後 nums = ", nums)
}
// 快速排序(尾遞迴最佳化)
func TestQuickSortTailCall(t *testing.T) {
q := quickSortTailCall{}
nums := []int{4, 1, 3, 1, 5, 2}
q.quickSort(nums, 0, len(nums)-1)
fmt.Println("快速排序(尾遞迴最佳化)完成後 nums = ", nums)
}