现在的位置: 首页 > 综合 > 正文

每天一道编程题(四)——–冒泡排序

2013年08月21日 ⁄ 综合 ⁄ 共 693字 ⁄ 字号 评论关闭

在写冒泡的时候遇到了一个问题,就是值传递问题,我写的是swap函数,本来只传两个数值是不可以的例如swap(int a,int b)这样只是单纯的值传递,并不能起到交换两个数值的作用,所以要直接对数组进行操作才是王道。想起C++中其实是按指针给值,直接修改堆里的值,而java里没有指针,所以要将“引用”传进来,我不知道用引用合不合适,但是这个引用和C++中的引用是有很大区别的,我觉得反而有点类似于指针。

public class BubbleSort {
	public static void swap(int[] args,int index1,int index2) {
		int temp = 0 ;
		temp= args[index1];
		args[index1] = args[index2];
		args[index2] = temp;
	} 


  public static void bubblesort(int[] num){
	  for(int i=0;i<num.length;i++){
		  for(int j=0;j<num.length-i-1;j++){
			  if(num[j]>num[j+1]){
				swap(num,j,j+1);  
			  }
		  }
	  }
  }
	public static void main(String[] args){
		int[] num={1,2,6,8,4,3};
	  bubblesort(num);
	  for(int a:num){
		  System.out.println(a);
	  }
//	int[] a={1,2};
//	  swap(a,0,1);
//	  System.out.println("a:"+a[0]);
//	  System.out.println("b:"+a[1]);
  }
}

抱歉!评论已关闭.