一,冒泡排序法:
代码示例:
package com.java;
import java.util.Arrays;
public class demo9 {
public static void main(String[] args) {
int[] a = {44, 11, 66, 4, 7, 29, 13, 60};
for (int i = 0; i < a.length - 1; i++) { /外层循环确定要走多少次
for (int j = 0; j < a.length - 1 -i; j++) { /内层循环比较相邻两个数,按需交换位
置,也可不减i,但计算量变大
if (a[j + 1] < a[j]) { /若需要降序排列可改为>
int t = a[j]; /定义临时变量用于交换赋值
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
System.out.println(Arrays.toString(a));
}
}
[4, 7, 11, 13, 29, 44, 60, 66]
二,稀疏数组
1.定义:
图片来源:西部开源-秦疆
2.实际应用:
package com.java;
/
0 0 0 0 0 0 0 0 0 0 0 11 11 2
0 0 1 0 0 0 0 0 0 0 0 1 2 1
0 0 0 2 0 0 0 0 0 0 0 2 3 2
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
/
public class demo10 {
public static void main(String[] args) {
int[][] array=new int[11][11];
array[1][2]=1;
array[2][3]=2;
System.out.println("原数组为:");
prints(array); /输出原始数组
int[][] array1=new int[3][3];
int count=0;
array1[0][0]=11;
array1[0][1]=11;
array1[0][2]=2;
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();
}
}
public static void prints(int[][] nums) {
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
System.out.print(nums[i][j]+"\t"); /数字间空两格
}
System.out.println();
}
}
}