时间:2021-05-02
思想
快速排序作为分治代表,通常实现由三步
1.数据中选择一个元素作为”基准”(pivot),通常选取最后一个元素;
2.分区(partition) 所有小于”基准”的元素,都移到”基准”的左边;所有大于”基准”的元素,都移到”基准”的右边。分区操作结束后,基准元素所处的位置就是最终排序后它的位置。
3.对“基准”左边和右边的两个子集,不断重复第一步和第二步,直到所有子集只剩下一个元素为止。
实现:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 func quickSort(inout a: [Int], l: Int, r: Int) { if l < r { var i = l, j = r, x = a[i] while i < j && a[j] >= x { j -= 1 } if i < j { a[i] = a[j] i += 1 } while i < j && a[i] < x { i += 1 } if i < j { a[j] = a[i] j -= 1 } a[i] = x quickSort( & a, l: l, r: i - 1) quickSort( & a, l: i + 1, r: r) } } var b = [8, 7, 6, 5, 4, 3, 2, 1] quickSort( & b, l: 0, r: 7) print(b)声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实现了八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序首先是算法实现文件Sort.h,代码如下:/**
java算法之快速排序实现代码摘要:常用算法之一的快速排序算法的java实现原理:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列
相对冒泡排序、选择排序等算法而言,快速排序的具体算法原理及实现有一定的难度。为了更好地理解快速排序,我们仍然以举例说明的形式来详细描述快速排序的算法原理。在前面
本文实例讲述了Python实现的数据结构与算法之快速排序。分享给大家供大家参考。具体分析如下:一、概述快速排序(quicksort)是一种分治排序算法。该算法首
快速排序,又称划分交换排序。以分治法为策略实现的快速排序算法。本文主要要谈的是利用javascript实现in-place思想的快速排序分治法:在计算机科学中,