`
nicegege
  • 浏览: 589492 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

直接排序

 
阅读更多

1.直接排序算法:从第二个元素开始迭代,和前面的元素比较大小,如果发现大于自己的,先用一个临时变量保存好自己,然后从该位置开始到自己位置的元素往后移一个位置。再把自己放在该位置。

代码1.

	public static void main(String[] args) {
		int[] a=new int[10];
		System.out.println("排序之前:");
		for(int i=0;i<a.length;i++){
		//	double random=Math.random()*10;
			//double d=Math.floor(random);//Math.round(random);
			a[i]=(int)Math.floor(Math.random()*10) ;
		
			System.out.println(a[i]);				
		}
		int temp =0;
		for(int i=0;i<a.length;i++){
			
			for(int j=0;j<i;j++){
				if(a[j]>a[i]){
					temp=a[i];
					for(int k=i;k>j;k--){
						a[k]=a[k-1];	
					}
					a[j]=temp;
					
				}
				
				
			}
			
		}
		System.out.println("最后直接排序以后:");
		for(int i=0;i<a.length;i++){
			System.out.println(a[i]);
			
			
		}
	}

 

代码2.

public static void main(String[] args) {
		Integer[] a=new Integer[10];
		int temp=0;
		for(int i=0;i<a.length;i++){	
			a[i]=new Integer(new Long(Math.round(Math.random()*100)).intValue());
		}
		System.out.println("排序之前:");
		for(int i=0;i<a.length;i++){
			System.out.println(a[i]);			
		}
		System.out.println("直接排序之后:");
		for(int i=0;i<a.length;i++){
			for(int j=0;j<i;j++){
				if(a[j].intValue()>a[i].intValue()){
					temp=a[i].intValue();
					for(int k=i;k>j;k--){
						a[k]=a[k-1];
						
					}
					a[j]=new Integer(temp);
					
				}
				
			}
			
		}
		for(int i=0;i<a.length;i++){
			
			System.out.println(a[i]);
		}

	}

 

 总结:使用java的Integer类,Long等对象比较大小有点繁琐,因为操作的都是对象,所以不能方便地直接使用比较运算符直接比较大小,而使用其他方法。例如两个Integer对象在数字上比较大小要用compareTo(Integer int)方法。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics