大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java二維數組排序示例

Java二維數組排序示例

更新時間:2022-09-29 11:34:19 來源:動力節點 瀏覽1459次

數組可以定義為二維數組。組成2D數組的矩陣表示為行和列的集合。因為2D數組的元素可以隨機訪問,所以我們可以使用索引訪問2D數組中的各個單元格,就像我們可以訪問一維數組一樣。

在二維數組中,單元格有兩個索引,一個是行號,另一個是列號。排序是一種按特定順序排列2D數組中元素的技術。2D數組可以按升序或降序排序。讓我們看看如何按升序和降序對Java中的2D數組進行不同的排序。

Java中的2D數組排序示例

下面介紹了不同的示例:

示例#1

Java中的2D數組排序示例,用于對2D數組的所有元素進行排序。

代碼:

package jex;
import java.util.*;
public class demo {
// using bubble sort to sort 2D array
// sort 2D array same as it is in a 1D array of size n * m
public static void sort(int arr[][]) {
int i, j, temp;
int n=arr.length;
int m=arr[0].length;
for (i = 0; i < n * m - 1; ++i) {
for (j = 0; j < n * m - 1 - i; ++j) {
if (arr[j / m][j % m] > arr[(j + 1) / m][(j + 1) % m]) {
temp = arr[(j + 1) / m][(j + 1) % m];
arr[(j + 1) / m][(j + 1) % m] = arr[j / m][j % m];
arr[j / m][j % m] = temp;
}
}
}
}
public static void print(int arr[][]) {
int i, j;
int n=arr.length;
int m=arr[0].length;
for (i = 0; i < n; ++i) {
for (j = 0; j < m; ++j) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int[][] arr={ { 5, 12, 17, 12, 23},
{ 1, 2, 4, 6, 8},
{21, 14, 7, 19, 27},
{ 3, 18, 9, 15, 25}
};
System.out.println("Array Before Sorting is : ");
print(arr);
sort(arr);
System.out.println("Array After Sorting is : ");
print(arr);
}
}

輸出

與上面的程序一樣,sort()方法用于迭代2D數組的每個元素,當當前元素大于下一個元素時,交換數字。最后,print方法顯示2D數組的所有元素。在main函數中,2D數組是在調用sort()函數前后創建和打印的,如上面的輸出所示。

示例#2

Java中的2D數組排序示例,按列對2D數組的所有元素進行排序。

代碼:

package jex;
import java.util.*;
public class demo {
public static void sort(int arr[][]) {
int i, j,k, temp;
int n=arr.length;
int m=arr[0].length;
for (k = 0; k < m; ++k) {
for (i = 0; i < n; ++i) {
for (j = 0; j < n - 1 - i; ++j) {
if (arr[j][k] > arr[j + 1][k]) {
temp = arr[j + 1][k];
arr[j + 1][k] = arr[j][k];
arr[j][k] = temp;
}
}
}
}
}
public static void print(int arr[][]) {
int i, j;
int n=arr.length;
int m=arr[0].length;
for (i = 0; i < n; ++i) {
for (j = 0; j < m; ++j) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int[][] arr={ { 5, 12, 17, 12, 23},
{ 1, 2, 4, 6, 8},
{21, 14, 7, 19, 27},
{ 3, 18, 9, 15, 25}
};
System.out.println("Array Before Sorting is : ");
print(arr);
sort(arr);
System.out.println("Array After Sorting is : ");
print(arr);
}
}

輸出

與上面的重寫程序一樣,sort()方法用于迭代2D數組的每個元素,并按列對數組進行排序。最后,print方法顯示2D數組的所有元素。在main函數中,2D數組是在調用sort()函數前后創建和打印的,如上面的輸出所示。

示例#3

按行對二維數組的所有元素進行排序。

代碼:

package jex;
import java.util.*;
public class demo {
// using bubble sort to sort 2D array
// sort 2D array same as it is in a 1D array of size n * m
public static void sort(int arr[][]) {
int i, j,k, temp;
int n=arr.length;
int m=arr[0].length;
for(k=0;k<n;++k){
// applying bubble sort on kth row
for(i=0;i<m;++i){
for(j=0;j<m-1-i;++j){
if(arr[k][j]>arr[k][j+1]){
temp = arr[k][j+1];
arr[k][j+1] = arr[k][j];
arr[k][j] = temp;
}
}
}
}
}
public static void print(int arr[][]) {
int i, j;
int n=arr.length;
int m=arr[0].length;
for (i = 0; i < n; ++i) {
for (j = 0; j < m; ++j) {
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int[][] arr={ { 5, 12, 17, 12, 23},
{ 1, 2, 4, 6, 8},
{21, 14, 7, 19, 27},
{ 3, 18, 9, 15, 25}
};
System.out.println("Array Before Sorting is : ");
print(arr);
sort(arr);
System.out.println("Array After Sorting is : ");
print(arr);
}
}

輸出

與上面的重寫程序一樣,sort()方法用于迭代2D數組的每個元素,并按行對數組進行排序。最后,print方法顯示2D數組的所有元素。在main函數中,2D數組是在調用sort()函數前后創建和打印的,如上面的輸出所示。

結論

排序是一種按特定順序排列2D數組中元素的技術。例如,在二維數組中,單元格有兩個索引:行號和列號。如果大家想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容從入門到精通,細致全面,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 狠狠色丁香婷婷综合最新地址 | 免费看成人国产一区二区三区 | 一级毛片大全 | 999久久精品国产 | 亚洲精品高清久久 | 激情影院免费看 | 午夜j| 国产在线播放一区 | 久久爱伊人一区二区三区小说 | 久久福利网 | 国产成人香蕉在线视频fuz | 精品国产午夜久久久久九九 | 国产精品亚洲一区二区麻豆 | 亚洲欧美人成综合在线最新 | 日本欧美一区二区三区不卡视频 | 尹人香蕉99久久综合网站 | 日日日日人人人夜夜夜2017 | 国产欧美精品午夜在线播放 | 在线观看亚洲网站 | 久久精品这里精品 | 大陆国产精品视频 | 免费一级毛片在线播放不收费 | 小h片在线播放 | 欧美精品亚洲精品日韩专区 | 天天色天天射综合网 | 四虎影视在线观看 | 久热精品男人的天堂在线视频 | 久青草国产手机在线视频 | 亚欧视频在线观看 | 国产欧美一区二区三区在线 | 青青青国产精品一区二区 | 欧美精品久久久亚洲 | 久久久久免费精品视频 | 久久国产视频精品 | 91久久亚洲精品国产一区二区 | 韩国精品videosex性韩国 | 亚洲欧美另类在线 | 国产成人精品免费视频大全五级 | 国产日韩一区 | 求毛片| 60欧美老妇做爰视频 |