ในบทความนี้ เราจะเรียนรู้วิธีการสลับเส้นทแยงมุม (Interchange Diagonals) ของเมทริกซ์ เมทริกซ์มีการจัดเรียงองค์ประกอบเป็นแถวและคอลัมน์ เมทริกซ์ที่มี m แถวและ n คอลัมน์ เรียกว่าเมทริกซ์ m × n องค์ประกอบแต่ละตัวในเมทริกซ์เรียกว่า element และแทนด้วย a[i][j] ซึ่งหมายถึงองค์ประกอบ a อยู่ที่แถวที่ i และคอลัมน์ที่ j
ตัวอย่างการทำงาน
สมมติข้อมูลนำเข้า (Input) คือ:
The matrix is defined as: 4 5 6 1 2 3 7 8 9
ผลลัพธ์ที่ต้องการ (Output) คือ:
The matrix after interchanging the elements: 6 5 4 1 2 3 9 8 7
อัลกอริทึม
ขั้นตอนที่ 1 - เริ่มต้น ขั้นตอนที่ 2 - ประกาศเมทริกซ์จำนวนเต็ม input_matrix และตัวแปรจำนวนเต็ม matrix_size และ temp ขั้นตอนที่ 3 - กำหนดค่าให้กับเมทริกซ์ ขั้นตอนที่ 4 - วนลูปผ่านแต่ละองค์ประกอบด้วย for-loop หลายชั้น สลับองค์ประกอบที่จำเป็นของเมทริกซ์โดยใช้ตัวแปรชั่วคราว (temp) ขั้นตอนที่ 5 - แสดงผลลัพธ์ ขั้นตอนที่ 6 - จบการทำงาน
ตัวอย่างที่ 1: เขียนโค้ดทั้งหมดในฟังก์ชัน main
public class InterchangeDiagonals {
public static int matrix_size = 3;
public static void main (String[] args) {
int input_matrix[][] = {
{4, 5, 6},
{1, 2, 3},
{7, 8, 9}
};
System.out.println("The matrix is defined as: ");
for (int i = 0; i < matrix_size; i++) {
for (int j = 0; j < matrix_size; j++) {
System.out.print(input_matrix[i][j] + " ");
}
System.out.println();
}
for (int i = 0; i < matrix_size; ++i)
if (i != matrix_size / 2) {
int temp = input_matrix[i][i];
input_matrix[i][i] = input_matrix[i][matrix_size - i - 1];
input_matrix[i][matrix_size - i - 1] = temp;
}
System.out.println("\nThe matrix after interchanging the elements: ");
for (int i = 0; i < matrix_size; ++i) {
for (int j = 0; j < matrix_size; ++j)
System.out.print(input_matrix[i][j]+" ");
System.out.println();
}
}
}
ผลลัพธ์
The matrix is defined as: 4 5 6 1 2 3 7 8 9 The matrix after interchanging the elements: 6 5 4 1 2 3 9 8 7
ตัวอย่างที่ 2: ใช้ฟังก์ชันแยก (Object-Oriented Style)
public class InterchangeDiagonals {
public static int matrix_size = 3;
static void interchange_diagonals(int input_matrix[][]) {
for (int i = 0; i < matrix_size; ++i)
if (i != matrix_size / 2) {
int temp = input_matrix[i][i];
input_matrix[i][i] = input_matrix[i][matrix_size - i - 1];
input_matrix[i][matrix_size - i - 1] = temp;
}
System.out.println("\nThe matrix after interchanging the elements: ");
for (int i = 0; i < matrix_size; ++i) {
for (int j = 0; j < matrix_size; ++j)
System.out.print(input_matrix[i][j]+" ");
System.out.println();
}
}
public static void main (String[] args) {
int input_matrix[][] = {
{4, 5, 6},
{1, 2, 3},
{7, 8, 9}
};
System.out.println("The matrix is defined as: ");
for (int i = 0; i < matrix_size; i++) {
for (int j = 0; j < matrix_size; j++) {
System.out.print(input_matrix[i][j] + " ");
}
System.out.println();
}
interchange_diagonals(input_matrix);
}
}
ผลลัพธ์
The matrix is defined as: 4 5 6 1 2 3 7 8 9 The matrix after interchanging the elements: 6 5 4 1 2 3 9 8 7