//二维数组全部排序算法
public static int [][]twoDimensionalArray(int array[][]){
//求出二维数组元素总个数;
int sum=0;
for(int i=0;i<array.length;i++) {
sum=sum+array[i].length;
}
// new一个一维数组,数组长度与二维数组array的所有元素个数是一样的
int array2[] = new int[sum];
//二维数组的行数
for (int i = 0; i < array.length; i++) {
// 每一行的元素个数
for (int j = 0; j < array[i].length; j++) {
// 把二维数组array的每一个元素都赋值给一维数组array2,索引使用等差数列思想
array2[j + i * (array[i].length)] = array[i][j];
}
}
BubbleSort(array2);
// 将排完序的一维数组赋值给二维数组,索引仍然使用等差数列思想
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j] = array2[j + i * (array[i].length)];
}
}
return array;
};
//典型的冒泡排序
public static int[] BubbleSort(int [] arr){
int temp;//临时变量
boolean flag = false;
//表示趟数,一共arr.length-1次。
for(int i=0; i<arr.length-1; i++){
/*
//冒泡排序第一种方法,从下往上
for(int j=arr.length-1; j>i; j--){
//每次都把最小的元素放在最前面
if(arr[j] < arr[j-1]){
temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
flag = true;
}
}
*/
//冒泡排序第二种方法,从上往下
for(int j=0;j<arr.length-1-i;j++){
//每次都把最大的元素放在最后面
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
//当经过遍历之后发现当前的数组是有序的,那么直接跳出外层循环
if(!flag){
break;
}
}
return arr;
}
基本思想:
将二维数组的的元素全部赋值给一维数组,然后对一维数组进行排序,之后根据等差数列基本思想对二维数组进行重新赋值
public static int [][]twoDimensionalArray(int array[][]){
//求出二维数组元素总个数;
int sum=0;
for(int i=0;i<array.length;i++) {
sum=sum+array[i].length;
}
// new一个一维数组,数组长度与二维数组array的所有元素个数是一样的
int array2[] = new int[sum];
//二维数组的行数
for (int i = 0; i < array.length; i++) {
// 每一行的元素个数
for (int j = 0; j < array[i].length; j++) {
// 把二维数组array的每一个元素都赋值给一维数组array2,索引使用等差数列思想
array2[j + i * (array[i].length)] = array[i][j];
}
}
BubbleSort(array2);
// 将排完序的一维数组赋值给二维数组,索引仍然使用等差数列思想
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
array[i][j] = array2[j + i * (array[i].length)];
}
}
return array;
};
//典型的冒泡排序
public static int[] BubbleSort(int [] arr){
int temp;//临时变量
boolean flag = false;
//表示趟数,一共arr.length-1次。
for(int i=0; i<arr.length-1; i++){
/*
//冒泡排序第一种方法,从下往上
for(int j=arr.length-1; j>i; j--){
//每次都把最小的元素放在最前面
if(arr[j] < arr[j-1]){
temp = arr[j];
arr[j] = arr[j-1];
arr[j-1] = temp;
flag = true;
}
}
*/
//冒泡排序第二种方法,从上往下
for(int j=0;j<arr.length-1-i;j++){
//每次都把最大的元素放在最后面
if(arr[j]>arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
flag = true;
}
}
//当经过遍历之后发现当前的数组是有序的,那么直接跳出外层循环
if(!flag){
break;
}
}
return arr;
}
基本思想:
将二维数组的的元素全部赋值给一维数组,然后对一维数组进行排序,之后根据等差数列基本思想对二维数组进行重新赋值