看了很多书,但还是没有明白快速排序的原理?哪位大侠帮帮我用通俗的语 ...
发布网友
发布时间:2022-05-06 03:31
我来回答
共3个回答
热心网友
时间:2022-06-13 03:52
递归的好理解,,,,,
给你一堆数字,,,在其中任意找一个做为标准,,把比标准小的放在标准的左边,,比标准大的放在标准的右边,,,这就是快排的算法,,这个算法结束后,,一堆数变为2堆,,再对这两堆数用这个算法***********当某一堆就剩下一个数字的时候,,这一堆结束排序,,,
实际写下来,方法有很多,,大致为两类,,一个是标准的选择为第一个或最后一个数,,,另一种标准的选择为随机的或任意指定的一个,,两者在写法上有些不一样,,多试下及个数据,,会理解的,,,前者较为多用,,后者主要处理有序的数据,,,,
当然还有非递归的,,,
热心网友
时间:2022-06-13 05:10
快速排序的基本原理就是每一次把一个值放到它应该的位置上,然后序列被分为两部分,这个数前一部分后一部分,再对这两部分分别进行快速排序即可。
比较过程的话,遵循前后前后这样交叉比较,有利于减少位置替换次数。你可以试试顺序比较,把比他大的都放后面比他小的都放前面,你会发现数据挪动的效率很低
热心网友
时间:2022-06-13 06:45
快速排序的基本原理就是每一次把一个值放到它应该的位置上,然后序列被分为两部分,这个数前一部分后一部分,再对这两部分分别进行快速排序即可。
如此递归下去,但是对于基本有序的数列,你就不要快排了,那样效率会很低