java-Java快速排序,帮忙看一下下面的代码有没有错!

问题描述

Java快速排序,帮忙看一下下面的代码有没有错!
快速排序,下面的代码亲测,能够运行,结果也正确,但是我感觉怪怪的!想问一下红色框里的代码是不是有问题,希望解释一下

解决方案

没问题呀,这是快速排序的一种版本,是标准程序。
你也可以把array[low] = array[high]改成类似swap(array[low]array[high])这样的语句,更符合快速排序的交换思想(把小于index的交换到前面,把大于index的交换到后面)。
不过你会发现,如果这么修改,在(修改后的)第一个红框执行的时候,array[low]始终等于array[index],而(修改后的)第二个红框执行的时候,array[high]始终等于array[index],这就是为什么源码中不需要采用交换的原因(交换是3次赋值,比较浪费时间)。

解决方案二:
没有问题吧,红框里的代码也不在循环里面。

解决方案三:
我从新看了一下代码!好像没有什么问题,只是自己短路的

时间: 2024-11-03 12:10:43

java-Java快速排序,帮忙看一下下面的代码有没有错!的相关文章

java代码-急求java高手,帮忙看下面的游戏代码,为何只能运行界面类然后其他都看不见也不能玩

问题描述 急求java高手,帮忙看下面的游戏代码,为何只能运行界面类然后其他都看不见也不能玩 //子弹Bullet类 package hy; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; public class Bullet { //坐标 public int x,y; //子弹大小 public int width,height; //子弹杀伤力 public int kill; //速度

java大神帮忙看下代码越界问题

问题描述 java大神帮忙看下代码越界问题 package com.net.ch02; public class Split { public void func(String str,String s){ String Str = s+str+s; String[]array = new String[100]; int[]ray = new int[100]; for(int i = 1 ; i<=Str.length();i++ ){array[i-1] = Str.substring(i

数据结构: 帮忙回答一下下面的这个有关最坏情况下的时间复杂度问题

问题描述 数据结构: 帮忙回答一下下面的这个有关最坏情况下的时间复杂度问题 解决方案 O我就省略了.. 1 n n/2 n n n 1 logN logN logN logN

zigbee-有ZIGBEE程序大神马?帮忙解释下下面的代码,谢谢!

问题描述 有ZIGBEE程序大神马?帮忙解释下下面的代码,谢谢! if( events & SAMPLEAPP_SEND_PERIODIC_MSG_EVT )//发送数据超时{if(P0_0 == 0){ if(SmogState == 0) {SmogState = 1;RfTx.TXDATA.Head = '&';RfTx.TXDATA.HeadCom[0] = 'A';RfTx.TXDATA.HeadCom[1] = 'S';RfTx.TXDATA.HeadCom[2] = 'M';

Java实现Andriod带看括弧的计算器代码_Android

废话不多说了,一切尽在代码中,具体代码如下所示: 界面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_par

html-插入jstl标签报错,求大神帮忙看下,网上解决方案都是错的

问题描述 插入jstl标签报错,求大神帮忙看下,网上解决方案都是错的 com.neusoft.unieap.action.EAPActionServlet.process(EAPActionServlet.java:814) >> org.apache.jasper.JasperException: Validation error messages from TagLibraryValidator for c null: org.xml.sax.SAXParseException: Attr

帮忙看下这段代码,为啥那个afafafa没有打印出来?

问题描述 帮忙看下这段代码,为啥那个afafafa没有打印出来? public class Demoe { public void f() { System.out.println("Throwing MyException from f()"); } public static void main(String[] args) { Demoe aa = null; try { aa.f(); throw new NullPointerException("afafafa&q

编码-谁能给解释一下下面的代码问题

问题描述 谁能给解释一下下面的代码问题 void encoding(hafuman ht[], bianma *bm, int n) { int start, c, p; char *ch; ch=(char *)malloc( n*sizeof(char) ); ch[n-1]=''; for(i=1; i<=n; i++) { start=n-1; c=i, p=ht[i].parent; while(p!=0) { start--; if(ht[p].lchild==c) ch[start

asp相当棘手的问题,请大家帮我分析下下面的代码。

问题描述 asp相当棘手的问题,请大家帮我分析下下面的代码.部分表格已经写程序完毕,实现了分组求和求平均但是还有部分表格需要数据库中的某一个值.数据库中就有直接调用但是不知道在咋调用???希望明白的兄弟帮帮我.代码如下:<%@LANGUAGE="VBSCRIPT"CODEPAGE="936"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:/