快速排序及其在Unity游戏开发中的应用
一、快速排序(Quick Sort)
快速排序是一种**分治法(Divide and Conquer)**思想的排序算法,它的基本步骤是:
- 选一个基准元素(pivot):通常选第一个元素、最后一个元素,或者随机一个。
- 分区(Partition):把数组分成两部分,小于等于 pivot 的放左边,大于 pivot 的放右边。
- 递归排序:对左右两部分继续进行快速排序。
简单示意图:
原数组:[8, 3, 5, 1, 9]
选择 pivot:8
分区后: [3, 5, 1] [8] [9]
递归排序左右子数组
最终排序完成
快速排序的时间复杂度:
- 最好情况:O(n log n)
- 平均情况:O(n log n)
- 最坏情况:O(n²)(例如已排好序的数据)
基本C#代码示例(适合Unity里直接使用):
void QuickSort(int[] arr, int left, int right)
{if