Introduction to VPS and Web Technology Development

快速排序

自由vps golang
// 快速排序
func QuickSort(arr []int) []int {
	// 如果数组长度小于等于1,则直接返回
	if len(arr) <= 1 {
		return arr
	}
	// 取数组中间元素作为基准
	pivot := arr[len(arr) / 2]
	// 定义两个切片,分别存放比基准小的元素和比基准大的元素
	left := make([]int, 0, len(arr))
	right := make([]int, 0, len(arr))
	// 遍历数组,将比基准小的元素放入left,比基准大的元素放入right
	for _, v := range arr {
		if v < pivot {
			left = append(left, v)
		} else if v > pivot {
			right = append(right, v)
		}
	}
	// 递归调用快速排序,对left和right分别排序
	left = QuickSort(left)
	right = QuickSort(right)
	// 将排序后的left,基准,right拼接到一起
	left = append(left, pivot)
	left = append(left, right...)
	// 返回排序后的数组
	return left
}
使用chatGPT寻求答案
标签: 暂无标签

免责声明:

本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:master@freevpsweb.com

同类推荐
评论列表