java快速排序函数

函数|排序

void QuickSort(String[] pData,int[] pDataNum,int left,int right)
{
int i,j;
int iTemp;
String middle,strTemp;
i = left;
j = right;
middle = pData[(left+right)/2];
do{
while((pData[i].compareTo(middle)<0) && (i<right))
i++;
while((pData[j].compareTo(middle))>0 && (j>left))
j--;
if(i<=j)
{
strTemp = pData[i];
pData[i] = pData[j];
pData[j] = strTemp;

iTemp = pDataNum[i];
pDataNum[i] = pDataNum[j];
pDataNum[j] = iTemp;

i++;
j--;
}
}while(i<=j);//如果两边扫描的下标交错,就停止(完成一次)

if(left<j)
QuickSort(pData,pDataNum,left,j);

if(right>i)
QuickSort(pData,pDataNum,i,right);
}

时间: 2024-11-03 22:44:30

java快速排序函数的相关文章

JNI的替代者:如何使用JNR访问Java外部函数接口(jnr-ffi)

1. JNR简单介绍 继上文"JNI的替代者-使用JNA访问Java外部函数接口",我们知道JNI越来越不受欢迎,JNI是编写Java本地方法以及将Java虚拟机嵌入本地应用程序的标准编程接口.它管理着JVM和非托管的本地环境之间的边界,提供数据编组和对象生命周期管理协议. 根据JEP(JDK增强提案) 191,JNI在下列几个方面最令开发人员痛苦: 需要开发人员编写C代码,这意味着他们需要具备一个完全不同于Java的世界的专业知识. 由于开发人员必须对JVM如何管理内存和代码多少有一

Java终止函数详解

Java终止函数是什么? 对于对象而言,Java 终止函数履行最后的确认工作.这与Java 结构函数是相反的,Java 结构函数创 建以及初始化了一个Java类实例.当一个对象不在被需要以及这些资源必须被用于其它对象的时候,在一 个类实例或者发行的系统资源,比如说文件描述符或者网络插孔连接上,Java 终止函数可以被用来清除 任务.你不需要证据或者为终止函数返回任何值.遗憾的是当一个类或者接口被载入的时候,目前的Java 语言的介绍中没有任何关于终止函数用于Java类或者接口的解释.让我们进一步

三角函数 c++函数-用java编写函数怎么编呀

问题描述 用java编写函数怎么编呀 用java变一个能够实现sinx cosx e∧x的函数的-程序在线等,用c++也行, 解决方案 一个函数只做一件事情,不要把3件不相干的事情写在一起.sin cos pow等java,C++都封装好了.你实在自己要写函数,就再包装下. 比如 double MySin(double x) { return Math.sin(x); } 解决方案二: 百度一下这三个函数用Java怎么表示,,然后再自己写一个方法把它们封装起来即可 解决方案三: 可以参考API中

Java中函数参数传递和数据存储

值传递是将要传递的值作为一副本传递的..引用传递,传递的是引用对象的内存地址..例如: int i=4;  int j=i;   //相当于把4复制了一个副本赋给了j 输出结果是i=4 ,j=4 Cint *p,*p1;int j=5;p=j;    //这里是把j在内存当中的地址赋给了指针pp1=p;   //这里是把指针p中保存的地址(就是j的地址)赋给了指针p1 j=4;    //这里改变j的值 输出结果是  j=4  ,  *p=4  ,  *p1=4  //因为p和p1指向的都是j

java split()函数详解

java split()函数详解 public string[] split(string regex,int limit)根据匹配给定的正则表达式来拆分此字符串. 此方法返回的数组包含此字符串的每个子字符串,这些子字符串由另一个匹配给定的表达式的子字符串终止或由字符串结束来终止.数组中的子字符串按它们在此字符串中的顺序排列.如果表达式不匹配输入的任何部分,则结果数组只具有一个元素,即此字符串 */  string[] timefirs=new string[3];  string timefi

再谈java回调函数_java

又遇到了回调函数,这次打算写下来分享一下. 所谓回调函数,或者在面向对象语言里叫回调方法,简单点讲,就是回头在某个时间(事件发生)被调用的函数. 再详细点:就是一个函数A,作为参数,传入了另一个函数B,然后被B在某个时间调用. 这里可以有疑问了,既然是一个函数调用另一个函数,可以在函数体里面调用啊,为什么还要把函数作为参数传到另一个函数里被调用?何况还有一些语言(比如java)不支持把函数作为参数. 对的,确实可以在函数体里调用另一个函数,功能上好像是没差别的,但是这里有一个问题,就是你要调用的

java 中函数的参数传递详细介绍_java

 java中函数的参数传递 总结:   1.将对象(对象的引用)作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的对象.   2.当将基本类型或基本类型的包装集作为参数传递时,传递的是值.也就是说函数内对参数所做的修改不会影响原来的变量.   3.数组(数组引用))作为参数传递时传递的是引用(相当于指针).也就是说函数内对参数所做的修改会影响原来的数组.   4.String类型(引用)作为参数传递时传递的是引用,只是对String做出任何修改时有一个新的Str

java substring()函数删除指定字符串

java substring()函数删除指定字符串 public class main {   /**    * case insensitive removal of a substring if it is at the end of a source string,    * otherwise returns the source string.    *    * a <code>null</code> source string will return <code

JAVA JNI函数的注册过程详细介绍_java

JAVA JNI函数的注册过程详细介绍 我们在java中调用Native code的时候,一般是通过JNI来实现的,我们只需要在java类中加载本地.so库文件,并声明native方法,然后在需要调用的地方调用即可,至于java中native方法的具体实现,全部交给了Native层.我们要在java中正确地调用到本地代码中对应函数的前提是什么呢?答案就是通过一定的机制建立java中native方法和本地代码中函数的一一对应关系,那么这种机制是什么呢?就是JNI函数的注册机制. JNI函数的注册有