快速排序算法,C语言代码实例详解
1.复杂度和稳定性
时间复杂度算法
最坏情况:O(n^2)
最好情况:O(nlogn)
平均情况:O(nlogn)
稳定性:不稳定排序
2。流程介绍
快速排序是研究得最多的排序,无论是大学职业课程的期末考试。快速排序广泛应用于公司面试问题中。在实际中,快速排序也被广泛使用。例如,STL中的底层排序层是快速排序。
先在阵列中选择一个参考点,然后从阵列两端扫描阵列,放置两个指示标记(low点到起始位置,高点到结束位置),先从后半部分开始,如果找到了一个元素。如果数值小于参考点,则交换low和高位数值,然后从上半场开始扫描。如果某个元素结果大于参考点的值,则交换low和高位的值,以此类推,直到low >= high,然后将参考点的值设置为高位。一次排序就完成了。
以后前半部分和后半部分将递归排序。当前半部分和后半部分都有序时,数组自然就有序了。? 第三次旅程
4.相关代码
| 1234567891011121314151617181920212223242526272829303132333435363738394041 | #includeusing 命名空间 std ; voidqucik_sort(inta[],intlow,int 高) { int i,j ,温度; i=low; j=高; if(lowi &&a[j] ]>=温度) { --j; } if(i | 60 | 50 | 30 | 20 | 10 | 40 | 70 | 70 |
} 同时 ( i |
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网