简单算法

简单算法

冒泡排序

    //冒泡排序
   public static int[] sort2(int[] a){
       int t=0;
       for (int i = 0; i < a.length-1; i++) {
           for(int j=0;j<a.length-1-i;j++){
               if(a[j+1]<a[j]){
                   t=a[j+1];
                   a[j+1]=a[j];
                   a[j]=t;
              }
          }
      }
       return a;
  }

稀疏数组

public class ArrayTest {
   public static void main(String[] args) {
       //十二行十一列的数组
       int[][] array1 = new int[12][11];

       array1[0][3] = 1;
       array1[2][4] = 1;
       array1[3][5] = 2;
       array1[5][7] = 2;
       print(array1);
       System.out.println("------------------------------------------------");
       //装换成稀疏数组保存,count+1行三列
       System.out.println("稀疏数组");
       //获取有效值个数
       int count = 0;
       for (int i = 0; i < array1.length; i++) {
           for (int j = 0; j < array1[i].length; j++) {
               if (array1[i][j] != 0) {
                   count++;
              }
          }
      }
       //稀疏数组第一行
       int[][] array2 = new int[count + 1][3];
       array2[0][0] = 12;
       array2[0][1] = 11;
       array2[0][2] = count;

       int temp = 1;
       for (int i = 0; i < array1.length; i++) {
           for (int j = 0; j < array1[i].length; j++) {
               if (array1[i][j] != 0) {
                   array2[temp][0] = i;
                   array2[temp][1] = j;
                   array2[temp][2] = array1[i][j];
                   temp++;
              }
          }
      }
       print(array2);
       System.out.println("------------------------------------------------");
       //还原
       System.out.println("还原");
       int[][] array3 = new int[array2[0][0]][array2[0][1]];
       for (int i = 1; i < array2.length; i++) {
               array3[array2[i][0]][array2[i][1]]=array2[i][2];
      }
       print(array3);
  }
   //遍历数组打印表
   public static void print(int[][] array) {

       for (int i = 0; i < array.length; i++) {
           for (int j = 0; j < array[i].length; j++) {
               System.out.print(array[i][j] + "\t");
          }
           System.out.println();
      }
  }
}

 输出截图:

 

posted on 2020-08-05 16:54  门之钥  阅读(182)  评论(0)    收藏  举报