易截截图软件、单文件、免安装、纯绿色、仅160KB

java实现的归并排序

一下是java实现的有一个归并排序,自己发现自己的基础功太差了,所以最近开始学习算法,好好的联系每一算法,各位大神不要见笑,写的有错的地方希望能够指出来谢谢哈:
package sort;
import java.util.Date;
import java.util.Random;
/*
* 归并排序
*/
public class MergeSort {
public static void main(String args[])
{
int len = 10;
Date date = new Date();
Random random = new Random(date.getSeconds());
//System.out.println(3/2);
int data[]=new int[len];
for(int i = 0; i < len; i++)
{
data[i]=(int)(random.nextFloat()*100+1);
}
System.out.println("Merge sort:");
show(data);
mergeSort(data,1,data.length);
show(data);
}

private static void show(int[] data)
{
System.out.println("========================");
for(int i = 0; i < data.length; i++)
{
System.out.print(data[i] + " ");
}
System.out.println();
System.out.println("========================");
}

/*
* start从1开始,end为data的长度
*/
private static void mergeSort(int[] data,int start, int end)
{
if(end>start)
{
int pos=(start+end)/2;
mergeSort(data,start,pos);
mergeSort(data,pos+1,end);
merge2(data,start,pos,end);
}
}
private static void merge(int[] data,int start, int pos, int end)
{
int len1 = pos-start+1;
int len2 = end-pos;
int A[] = new int[len1+1];
int B[] = new int[len2+1];
for(int i=0; i<len1; i++)
{
A[i] = data[i+start-1];
}
A[len1] = Integer.MAX_VALUE;
for(int i=0; i<len2; i++)
{
B[i]=data[i+pos];
}
B[len2] = Integer.MAX_VALUE;
int m=0,n=0;
for(int i=start-1; i<end; i++)
{
if(A[m]>B[n])
{
data[i] = B[n];
n++;
}
else
{
data[i] = A[m];
m++;
}
}
}

private static void merge2(int[] data,int start, int pos, int end)
{
int len1 = pos-start+1;
int len2 = end-pos;
int A[] = new int[len1];
int B[] = new int[len2];
for(


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

Java中字符串比较的注意点

熟悉C++的人对于两个字符串比较的代码一定很了解:
(string1==string2)
但在java中,这个代码即使在两个字符串完全相同的情况下也会返回false
Java中必须使用string1.equals(string2)来进行判断
补充
如果:
string s1=new String("Hello");
string s2=new String("Hello");
则(s1==s2)=false
如果:
s ......

Java SE 多线程

package thread;
class TestThread extends Thread {
 public void run(){
  while(true){
   System.out.println(Thread.currentThread().getName());
  }
 }
}
public class ThreadDemo {
 /**
  * @param args
  */
 public static void ......

Java中的equals方法和==运算


值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相 ......

Java SE 多线程 线程生命周期

package thread;
class ThreadTest4 implements Runnable{
 private boolean flag=true;
 public void stopMe(){
  flag=false;
 }
 public void run() {
  while (flag){
   System.out.println(Thread.currentThread().getName()+" is running ");
&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号