永发信息网

排序算法有哪些,简述快速排序的核心

答案:2  悬赏:40  手机版
解决时间 2021-04-04 09:35
  • 提问者网友:你挡着我发光了
  • 2021-04-03 21:27
排序算法有哪些,简述快速排序的核心
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-04-03 21:58
简单的: 冒泡,选择排序,插入排序,桶排序,
复杂点的: 堆排序,归并排序,快速排序,
还有 基数排序,计数排序(这两个我还没接触到,不懂)
快速排序核心:
每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样只能在相邻的数之间进行交换,交换的距离就大得多了。因此总的比较和交换次数就少了,速度自然就提高了。

                                                                 图片及快速排序简述来源于<啊哈算法>
全部回答
  • 1楼网友:舊物识亽
  • 2021-04-03 22:21
if values[i] <= temp && i <= p {
i++
}
if i <= p {
values[p] = values[i]
p = i
}
}
values[p] = temp
if p-left > 1 {
quickSort(values, left, p-1)
}
if right-p > 1 {
quickSort(values, p+1, right)
}
}

func QuickSort(values []int) {
if len(values) <= 1 {
return
}
quickSort(values, 0, len(values)-1)
}

// 第二种写法
func Quick2Sort(values []int) {
if len(values) <= 1 {
return
}
mid, i := values[0], 1
head, tail := 0, len(values)-1
for head < tail {
fmt.Println(values)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯