快速排序算法的思想、实现代码与性能分析总结

您所在的位置:网站首页 java中快速排序算法输出 快速排序算法的思想、实现代码与性能分析总结

快速排序算法的思想、实现代码与性能分析总结

2024-04-04 04:35| 来源: 网络整理| 查看: 265

快速排序

据说,很多公司的面试环节都喜欢要求应聘者写出快速排序的代码;今天复习排序算法中快速排序的这个知识点,在此总结一下!

一,基本思想 实现快速排序算法的关键在于先在待排序的数组中选择一个数字M(有时,称这个数字为枢轴),然后把数组中的数字分成两部分,比M小的数字移动到数组的左边,比M大的数字移动到数组的右边;之后用递归的思路分别对左右两边进行排序。

根据这个思想,通常,在实现算法时先实现一趟快速排序的算法,然后实现一个递归函数对整个数组进行排序。

二,两种快速排序的代码 关于对快速排序的具体执行过程的分析的内容有很多文章和视频进行讲解,这里我直接上代码。 通常,对整个数组进行排序的递归函数的实现方式基本相同,这里我总结两中思想略有不同的一趟快速排序。 ①选择第一个元素作为枢轴,从后向前找比枢轴小的元素移动到数组前端,从前向后找比枢轴大的元素移动到数组后端,最后空下一个位置刚好是枢轴的位置。

int partition(int data[], int start, int end) { data[0] = data[start]; while (start if (start int data[] = {0,6,1,13,18,7,3,25,6,20,3,9,8,12,5}; cout if (data[index] swap(data[index], data[small]); } } } ++small; swap(data[small], data[end]); return small; }

附上main函数代码(QuickSort函数同上):

int main() { int data[] = { 5,6,4,8,2,3,4,4,9,1,3,9,7,2,46,1,6,5 }; QuickSort(data, 0, 17); for (int i : data) cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3