先说选择排序与冒泡排序这两個排序算法效率差不多,只不过选择排序算法是每一趟选出最大或者最小的数依次放在最前面而冒泡排序一般情况则是每一趟置换出最夶数依次到最末尾位置。
快速排序顾名思义是最常用、最快速的排序算法之一。它采用分治的思想:每次一般假定第一位为及基准数先从右到左(因为要先选出比基准值小的数,便于最后一步与基准值所在位置进行互换)开始比较并移动(下标j--)直到找到比基准值要小嘚数才停下;然后再从左到右比较并移动(下标i++)直到找到比基准值要大的数才停下之后将所找到的比基准值小和大的数进行位置互换操作。接下来继续先从右到左按上述操作执行直到下标i与j重合,将基准值与此时j所在位置进行互换这样下来,基准值左右两边分别都是小於和大于基准值的数然后将这左右两边未排序的序列递归调用以上排序方式即可完成所有快速排序算法的操作。
接下来是选择和冒泡排序算法:
最后比较一下这三种排序算法耗时:
下面是控制台输出结果:
可以看到对于排序长度为10000的随机数字序列快速排序以兰博基尼的排序速度远胜过冒泡和选择排序的拖拉机。
以上为个人总结有考虑不周的地方欢迎大家进行支教和交流,谢谢!