Java:一维数组排序

package mypackage;

public class Hello {
	public static int[] random(int n,int range){  				//声明n为常量,方法体中不能赋值
		int[] x=new int[n];   							//声明一个一维数组,并且为它申请空间
		while(n>0)
			x[--n]=(int)(Math.random()*range);
		
		return x;
	}
	public static int[] random(){						//方法重载
		return random(10,100);
	}
	//输出一维数组
	public static void print(final int[] x){		//声明value数组为常量,方法体中不能更改引用	
		System.out.print("{");
		if(x.length>0)
			System.out.print(x[0]);
		
		for(int i=0;i<x.length;i++)
			System.out.print(","+x[i]);
		
		System.out.print("}");
	}
	
	public static void selectSort(int[] x){				//选择排序
		for(int i=0;i<x.length-1;i++){
			int min=i;
			for(int j=i;j<x.length;j++){
				if(x[j]<x[min]){
					min=j;
				}
			}
			if(i!=min){
				int temp=x[i];
				x[i]=x[min];
				x[min]=temp;
			}
		}
	}
	public static int[] merge(int[] x,int[] y){			//将两个数组合并为一个数组
		int z[]=new int[x.length+y.length],i=0,j=0,k=0;
		while(i<x.length&&j<y.length)
			if(x[i]<y[i])
				z[k++]=x[i++];
			else
				z[k++]=y[j++];
		while(i<x.length)
			z[k++]=x[i++];
		while(j<y.length)
			z[k++]=y[j++];
		return z;
	}
	public static void main(String[] args) {
		int n1=7,range1=100;
		int[] value1=random(n1,range1),value2=random(6,100);  //产生随机数
		System.out.print("value1:");  print(value1);
		System.out.print("value2:");  print(value2);
		selectSort(value1); selectSort(value2);
		System.out.print("sorted value1:");  print(value1);
		System.out.print("sorted value2:");  print(value2);
		System.out.print("merge:");  print(merge(value1,value2));
	}

}

【运行结果】
在这里插入图片描述

发布了31 篇原创文章 · 获赞 2 · 访问量 5162
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章