前言
再次来学习快速排序,通过快速排序调整数组的过程来加深自己对于快速排序的认识和理解。下面是我给自己测试的三个小题
小测试
根据自己之前对于快速排序的认识:选出一个基值把数组中小于它的放在左边,大于它的放在右边,分治 递归这个过程直到调整好整个数组。
第一题
待排序数组: 1 7 6 8 3 选取最左边的1 作为基值,将数组从小到大排序。大家可以先自己思考一下,答案在下个小结
第二题
待排序数组: 1 7 6 8 3 4 选取最中间的6 作为基值,将数组从小到大排序。大家可以先自己思考一下,答案在下面
第三题
待排序数组: 1 3 2 1 2 3 1 选取最中间的1 作为基值,将数组从小到大排序。大家可以先自己思考一下,答案在下面
答案
第一题
待排序数组: 1 7 6 8 3 选取最左边的1 作为基值,将数组从小到大排序。
1 7 6 8 3 以 基值为 1 进行调整 (新的调整过程,需要思考)
1 3 6 7 8 以 基值为 7 进行调整
1 3 6 7 8 以 基值为 3 进行调整
1 3 6 7 8 以 基值为 8 进行调整
数组调整完毕。
第二题
待排序数组: 1 7 6 8 3 4 选取最左边的1 作为基值,将数组从小到大排序。
1 7 6 8 3 4 以 基值为 6 进行调整 (新的调整过程,需要思考)
1 4 3 6 8 7 以 基值为 4 进行调整
1 3 4 6 8 7 以 基值为 1 进行调整
1 3 4 6 8 7 以 基值为 8 进行调整
1 3 4 6 7 8
数组调整完毕。
第三题
待排序数组: 1 3 2 1 2 3 1 选取最中间的1 作为基值,将数组从小到大排序。
1 3 2 1 2 3 1 以 基值为 1 进行调整 (新的调整过程,需要思考)
1 1 1 2 2 3 3 以 基值为 1 进行调整
1 1 1 2 2 3 3 以 基值为 2 进行调整
1 1 1 2 2 3 3 以 基值为 3 进行调整
1 1 1 2 2 3 3
数组调整完毕。
小结
每当自己认为对于算法的理论和过程比较理解的时候,都可以从几个特殊的数组和角度来测试一下自己,不断进取。 荣幸与您分享~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144285.html