冒泡排序,插入排序

来源:互联网 发布:数据魔方标准版有用吗 编辑:程序博客网 时间:2024/05/21 07:58
public static void 插入排序(int[]arr){
  //默认第一次是拿到的最大的数
  int l=arr.length;
  int target;
  int j,i;
  //第一层for循环是用来选择数组里对应的元素的,从1开始选取,则表示
    //第一个数是默认的,不进行比较的直接入座。从数组里拿出第二个数
    //然后需要和已经入座的这个数进行比较,进入if判断,如果这个数和这个已经入座的数
    //进行比较的结果是这个数大于入座的这个数,则可以直接入座。否则,就要交换位置了。
    //把已经入座的这个数的值赋值到,本来要入座的这个数的位置上。然后再进行判断,相当于每次
    //需要比较的次数会递增,但是不会破坏原有的排序的结果。一旦找到对应的位置,target就直接
    //入座
  for( i=1;i<l;i++){
   j=i;
  target=arr[j];
  while(j>0&&target>arr[j-1]){
   arr[j]=arr[j-1];
   j--;
  }
   arr[j]=target;
   
   System.out.println(Arrays.toString(arr));
   
  }
  
  
 }
 
public static void 冒泡(int[]arr){
  
  int l=arr.length;
  //外层的for循环是确定比较的次数。7个元素的话,需要比较6次,
  for(int i=0;i<l-1;i++){
   //第二层for循环也是用来比较次数大的。
   for(int j=0;j<l-1-i;j++){
    if(arr[j]>arr[j+1]){
     int t=arr[j];
     arr[j]=arr[j+1];
     arr[j+1]=t;
    }
   }
   System.out.println(Arrays.toString(arr));
  }
  
 }