Sorting pada matriks (array 2D)

Metode yang digunakan sama dengan bubble sort pada array 1D. Untuk postingan selanjutnya, akan menggunakan metode yang lebih baik.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.Scanner;
 
class SortingMatriks {
    public static void main(String args[]) {
        Scanner skener = new Scanner(System.in);
        
        int ordo = skener.nextInt();
        
        int matrix[][] = new int[ordo][ordo];
        
        for (int i=0; i<ordo; i++) {
            for (int j=0; j<ordo; j++) {
                matrix[i][j] = skener.nextInt();
            }
        }
        
        for (int i=0; i<ordo; i++) {
            for (int j=0; j<ordo; j++) {
                for (int k=ordo-1; k>=i; k--) {
                    for (int l=ordo-1; l>=0; l--) {
                        if (matrix[k][l] < matrix[i][j]) {
                            int temp = matrix[i][j];
                            matrix[i][j] = matrix[k][l];
                            matrix[k][l] = temp;
                        }
 
                        if (k == i && l<=j) break;
                    }
                }
            }
        }
        
        System.out.println();
        for (int i=0; i<ordo; i++) {
            for (int j=0; j<ordo; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();
        }
    }
}
import java.util.Scanner;

class SortingMatriks {
	public static void main(String args[]) {
		Scanner skener = new Scanner(System.in);
		
		int ordo = skener.nextInt();
		
		int matrix[][] = new int[ordo][ordo];
		
		for (int i=0; i<ordo; i++) {
			for (int j=0; j<ordo; j++) {
				matrix[i][j] = skener.nextInt();
			}
		}
		
		for (int i=0; i<ordo; i++) {
			for (int j=0; j<ordo; j++) {
				for (int k=ordo-1; k>=i; k--) {
					for (int l=ordo-1; l>=0; l--) {
						if (matrix[k][l] < matrix[i][j]) {
							int temp = matrix[i][j];
							matrix[i][j] = matrix[k][l];
							matrix[k][l] = temp;
						}

						if (k == i && l<=j) break;
					}
				}
			}
		}
		
		System.out.println();
		for (int i=0; i<ordo; i++) {
			for (int j=0; j<ordo; j++) {
				System.out.print(matrix[i][j] + " ");
			}
			System.out.println();
		}
	}
}

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" extra="">