Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- public class Main {
- void swapChars(char[] s, int i, int j) {
- char tmp = s[i];
- s[i] = s[j];
- s[j] = tmp;
- }
- abstract class ISwapper {
- abstract void swap(char [][] matrix, int i, int j);
- };
- class SwapperColumns extends ISwapper {
- void swap(char [][] matrix, int i, int j) {
- int rowsCount = matrix.length;
- for (int k = 0; k < rowsCount; ++k) {
- swapChars(matrix[k], i, j);
- }
- }
- };
- class SwapperRows extends ISwapper {
- void swap(char [][] matrix, int i, int j) {
- char[] tmp = matrix[i];
- matrix[i] = matrix[j];
- matrix[j] = tmp;
- }
- };
- void Sort(char [][] matrix, char [] keys, ISwapper swaper) {
- int size = keys.length;
- for (int i = 0; i < size; ++i) {
- for (int j = i + 1; j < size; ++j) {
- if (keys[i] > keys[j]) {
- swapChars(keys, i, j);
- swaper.swap(matrix, i, j);
- }
- }
- }
- }
- void show(char[][] matrix) {
- System.out.println("Matrix:");
- for (int i = 0, k = 0; i < matrix.length; ++i) {
- for (int j = 0; j < matrix[0].length; ++j) {
- System.out.print(matrix[i][j] + " ");
- }
- System.out.println();
- }
- }
- void run() {
- char[] keysRows = "dcba".toCharArray();
- char[] keysColumns = "dcba".toCharArray();
- char[][] matrix = new char[keysRows.length][keysColumns.length];
- // init matrix
- for (int i = 0, k = 0; i < matrix.length; ++i) {
- for (int j = 0; j < matrix[0].length; ++j) {
- matrix[i][j] = (char)(97 + k++);
- }
- }
- show(matrix);
- // sort solumns
- Sort(matrix, keysColumns, new SwapperColumns());
- show(matrix);
- // sort rows
- Sort(matrix, keysRows, new SwapperRows());
- show(matrix);
- }
- public static void main(String []args) {
- (new Main()).run();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement