Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这个快速排序算法是如何工作的?_Java_Sorting - Fatal编程技术网

Java 这个快速排序算法是如何工作的?

Java 这个快速排序算法是如何工作的?,java,sorting,Java,Sorting,当使用序列计算机时,我的问题是有人能向我解释代码中发生了什么以及如何发生的吗 我对快速排序算法略知一二,但在上面的例子中似乎不一样。这就是快速排序。如果您了解该算法,即使以不同的方式实现,您也会认识到它。特别是这一个,实际上是用命令式语言实现它的标准方式 工具书类 这就是快速排序。如果您了解该算法,即使以不同的方式实现,您也会认识到它。特别是这一个,实际上是用命令式语言实现它的标准方式 工具书类 这是调试器的典型用例。通过调试器运行代码并逐步执行,同时检查调用堆栈和局部变量。应该很清楚发

当使用序列计算机时,我的问题是有人能向我解释代码中发生了什么以及如何发生的吗


我对快速排序算法略知一二,但在上面的例子中似乎不一样。

这就是快速排序。如果您了解该算法,即使以不同的方式实现,您也会认识到它。特别是这一个,实际上是用命令式语言实现它的标准方式

工具书类

    • 这就是快速排序。如果您了解该算法,即使以不同的方式实现,您也会认识到它。特别是这一个,实际上是用命令式语言实现它的标准方式

      工具书类

        • 这是调试器的典型用例。通过调试器运行代码并逐步执行,同时检查调用堆栈和局部变量。应该很清楚发生了什么


          如果您不熟悉调试器,那么启动imho(Eclipse教程)永远不会太早。

          这是调试器的典型用例。通过调试器运行代码并逐步执行,同时检查调用堆栈和局部变量。应该很清楚发生了什么


          如果您不熟悉调试器,那么现在就开始imho,Eclipse教程,永远都不会太早。

          有没有丑陋的格式化程序问题博物馆?有人能帮我整理一下代码吗?当我编辑它的时候。它看起来很完美,在一个新的行上,但当我发布它时,它看起来被压扁了。@j-unit-122:除非你删除所有空格并正确设置问题的格式,否则没有人会回答这个问题。那么,你认为这有多大的公益心?呸。。。!有没有丑陋的格式化程序问题博物馆?有人能帮我整理一下代码吗?当我编辑它的时候。它看起来很完美,在一个新的行上,但当我发布它时,它看起来被压扁了。@j-unit-122:除非你删除所有空格并正确设置问题的格式,否则没有人会回答这个问题。那么,你认为这有多大的公益心?呸+1.但我认为,如果没有对算法的高水平掌握,调试器无法帮助人们理解快速排序。然而,在许多初学者的问题中,他们需要的是健康剂量的逐步调试。@Polygene润滑油:OP说他知道快速排序,所以我相信剩下的是理解代码中每一行的功能,我相信调试器是一项巨大的资产。特别是对于递归调用,能够“看到”调用堆栈有助于降低递归的复杂性;但我认为,如果没有对算法的高水平掌握,调试器无法帮助人们理解快速排序。然而,在许多初学者的问题中,他们需要的是健康剂量的逐步调试。@Polygene润滑油:OP说他知道快速排序,所以我相信剩下的是理解代码中每一行的功能,我相信调试器是一项巨大的资产。特别是对于递归调用,能够“看到”调用堆栈有助于降低递归的复杂性。
          private static char[] quicksort (char[] array , int left , int right) {
              if (left < right) {
                  int p = partition(array , left, right);
                  quicksort(array, left, p − 1 );
                  quicksort(array, p + 1 , right);
              }
              for (char i : array)
              System.out.print(i + ” ”);
              System.out.println();
              return array;
          }
          private static int partition(char[] a, int left, int right) {
              char p = a[left];
              int l = left + 1, r = right;
              while (l < r) {
                  while (l < right && a[l] < p) l++;
                  while (r > left && a[r] >= p) r−−;
                  if (l < r) {
                      char temp = a[l];
                      a[l] = a[r];
                      a[r] = temp;
                  }
              }
              a[left] = a[r];
              a[r] = p;
              return r;
              }
          }
          
          B I G C O M P U T E R
          B C E G I M P U T O R
          B C E G I M P U T O R
          B C E G I M P U T O R
          B C E G I M P U T O R
          B C E G I M O P T U R
          B C E G I M O P R T U
          B C E G I M O P R T U
          B C E G I M O P R T U
          B C E G I M O P R T U
          B C E G I M O P R T U
          B C E G I M O P R T U
          B C E G I M O P R T U