如何采取中间的快速排序方法
哈哈,我先说一下。想你并不容易。
回到正题,我要讲两个方面。 1是这个程序,2是你的问题。
1、说说程序快速排快排助手
说实话,我没研究排序算法什么的。也许你是写它的主人,但我真的很难读懂它。而且我个人觉得逻辑比较复杂,比较混乱,呵呵,可能我还没到顶层吧。
此外,排序(冒泡排序)基本在各种书籍中都有讲解。网上也有很多排序算法可以深入研究。很难说你的方法有多好。
2、谈谈你的问题。
解决办法,其实如果你单步运行+断点跟踪,就可以看到发生了什么。
首先,当您第一次打印结果时进行排序。但最终数字数组已经排序。原来的数组变成了。 “9”从中间变成了最后一个数字,这是你“排序”的功能。
在第二次排序之前,你的数组下标(索引) left=0, right=5 然后在你计算这一步之后 intmiddle=numbers[(left+right)/2];因为5不能除以2变成2、5、但实际上变成了numbers[2](原理不清楚,应该直接认整数部分)。所以 numbers[2] 现在是 2、
3、对于你问的第二个问题,我个人认为你应该好好看看递归解释。而且一般都有简单的例子,比较容易理解。这比直接看这个要好。然后回来看看它会事半功倍。
[广告]
欢迎IT从业者加入★IT从业者俱乐部★ IT从业者的信息交流空间。
如何采取中间的快速排序方法