稀疏数组
package array;
//稀疏数组----压缩算法
public class ArrayDemo03 {
public static void main(String[] args) {
int[][] array = new int[11][11];
array[1][2] = 1;
array[2][3] = 2;
System.out.println("原始的数组是:");
for (int[] x: array) {
for (int y: x) {
System.out.print(y+"\t");
}
System.out.println(" ");
}
int sum = 0;
for (int i = 0; i <array.length ; i++) {
for (int j = 0; j <array.length ; j++) {
if(array[i][j] != 0){
sum++;
}
}
}
System.out.println("有效的个数是:" + sum);
int[][] array1 = new int[sum+1][3];
array1[0][0] = 11;
array1[0][1] = 11;
array1[0][2] = sum;
int count = 0;
for (int i = 0; i <array.length ; i++) {
for (int j = 0; j <array[i].length ; j++) {
if(array[i][j] != 0){
count++;
array1[count][0] = i;
array1[count][1] = j;
array1[count][2] = array[i][j];
}
}
}
System.out.println("稀疏数组是:");
for (int i = 0; i <array1.length ; i++) {
for (int j = 0; j <array1[i].length ; j++) {
System.out.print(array1[i][j] + "\t");
}
System.out.println(" ");
}
//还原稀疏数组
int[][] array2 = new int[array1[0][0]][array1[0][1]];
for (int i = 1; i <array1.length ; i++) {
array2[array1[i][0]][array1[i][1]] = array1[i][2];
}
System.out.println("还原的数组是:");
for (int[] x: array2) {
for (int y: x) {
System.out.print(y+"\t");
}
System.out.println(" ");
}
}
}
冒泡排序
package array;
import java.util.Arrays;
public class ArrayDemo04 {
public static void main(String[] args) {
int[] a = {5,4,3,2,1,7,9,8};
int[] sort = sort(a);
System.out.println(Arrays.toString(a));
}
public static int[] sort(int[] array){
int temp;
boolean flag = false;
for (int i = 0; i <array.length-1 ; i++) {
for (int j = 0; j <array.length-1-i ; j++) {
if(array[j] > array[j+1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
flag = true;
}
}
if(flag == false){
break;
}
}
return array;
}
}