โครงสร้างข้อมูลอาร์เรย์

มาทำความรู้จักกับโครงสร้างข้อมูลแบบอาร์เรย์กัน

อาร์เรย์นับเป็นโครงสร้างข้อมูลที่ถูกนำมาใช้บ่อยมากๆ กับการเขียนโปรแกรม ดังนั้นเราควรจะทำความรู้จักและสนิทกับมันให้มากที่สุดเลยก็ว่าได้

  • อาร์เรย์เป็นโครงสร้างข้อมูลแบบหนึ่งที่ผู้ใช้ต้องกำหนดคุณสมบัติขึ้นมาก่อน โดยประกอบด้วยสมาชิกจำนวนหนึ่งที่เรียงต่อกันตามลำดับที่ถูกมองเป็นตาราง
  • สมาชิกทุกตัวจะมีชนิดข้อมูลที่เป็นแบบเดียวกัน
  • ในการใช้อาร์เรย์สามารถเข้าถึงสมาชิกที่ต้องการได้โดยตรง ซึ่งมีตัวชี้ใช้อ้างไปยังสมาชิกที่ต้องการเรียกว่า (index) ซึ่งจะเป็นเลขจำนวนเต็ม
  • การกำหนดช่วงหรือจำนวนสมาชิกจะใช้ขอบเขตล่างซึ่งมีค่าน้อยที่สุด และขอบเขตบนซึ่งมีค่ามากที่สุด
  • อาร์เรย์เป็นโครงสร้างข้อมูลที่คงที่ เปลี่ยนแปลงจำนวนสมาชิกไม่ได้ขณะทำงาน

มีการกำหนดลักษณะของอาร์เรย์ออกเป็นมิติต่างๆ ดังนี้

อาร์เรย์หนึ่งมิติ (One-dimension Array)

มีลักษณะที่ง่ายที่สุดเป็นตารางที่มีเพียงแถวเดียว หรือบางครั้งเรียกว่าเวกเตอร์ เช่น A = {10,20,30,40,50} ‣ อาร์เรย์หนึ่งมิติจะมีดัชนีเพียงตัวเดียวที่ใช้อ้างไปยังตำแหน่งของสมาชิกแต่ละตัว อาร์เรย์แต่ละตัวจะถูกแยกแยะด้วยชื่ออาร์เรย์ตามด้วยดัชนี (index) ที่อยู่ในวงเล็บ จากอาร์เรย์ A จะได้ A(0)=10, A(1)=20, A(2)=30, A(3)=40 และ A(4)=50 ซึ่งมีสมาชิก 5 ตัว ดังนั้นเมื่อต้องการใช้อาร์เรย์ก็เพียงแค่กำหนดชื่อและใช้ดัชนีอ้างไปยังสมาชิกแต่ละตัว ในการเขียนอัลกอรึทึมจึงใช้โครงสร้างควบคุมการทำงานแบบวนลูปเพื่อใช้ควบคุมสมาชิกแต่ละตัว

ตัวอย่างการใช้งานอาร์เรย์หนึ่งมิติ

ตัวอย่างการหาค่าสูงสุดในอาร์เรย์

public static void main(String[] args) {
      
    int[] a= new int[]{1, 20, 15, -10, 12, 99, 3, 50, -60, 89};
    
    int max =0;
    
	for(int i=0; i< a.length; i++){
		if(a[i] > max){
			max = a[i];
		}
	}
	
	System.out.println("max is "+max);
}

ผลลัพธ์

max is 99

อาร์เรย์สองมิติ (Two-dimension Array)

เป็นอาร์เรย์ที่มีสมาชิกเป็นชนิดข้อมูลแบบอาร์เรย์ ลักษณะเป็นตารางที่มีทั้งแถวและคอลัมน์ หรือเรียกว่าเมตทริก จากตัวอย่างข้างล่าง เป็นอาร์เรย์สองมิติ ที่มีสมาชิกในแถว 3 ตัว และแต่ละสมาชิกจะมีสมาชิกในคอลัมน์ 3 ตัว ก็จะได้เป็นตารางขนาด 3*3

ชื่อคะแนนเกรด
สมชาย ตั้งใจเรียน79B+
สมหญิง เรียนดี85A
สมบัติ มากมี70C

ตัวอย่างการใช้งานอาร์เรย์สองมิติ

public static void main(String[] args) {

	String[][] students = {
				{"สมชาย ตั้งใจเรียน","79","B+"},
				{"สมหญิง เรียนดี","81","A"},
				{"สมบัติ มากมี","74","B"} 
			};
			
	for(int row=0; row< students.length; row++){
		
		String[] student = students[row];
		
		for(int column=0; column< student.length; column++){
			System.out.print(student[column]+" ");
		}
		System.out.println("");
		System.out.println("---------------");	
		
	}
}

การเข้าถึงข้อมูลในอาร์เรย์เราก็แค่วนลูป โดยลูปแรกจะหาจำนวนแถวของอาร์เรย์ และลูปที่สองดึงข้อมูลที่อยู่ในคอลัมน์ออกมาแสดง

ผลลัพธ์

สมชาย ตั้งใจเรียน 79 B+

สมหญิง เรียนดี 81 A

สมบัติ มากมี 74 B

อาร์เรย์หลายมิติ (N-dimension Array)

การสร้างอาร์เรย์อาจเป็น สามมิติ สี่มิติ หรือมากกว่านั้นเรียกว่าอาร์เรย์หลายมิติหรือ N-มิติ ดัชนีและช่วงจำนวนสมาชิกก็จะเพิ่มมากขึ้นตามจำนวนมิติ ‣ อาร์เรย์ N-มิติ จะใช้ค่าดัชนี N ตัวอ้างไปยังตำแหน่งสมาชิกแต่ละตัว

ผมก็ขอจบเรื่องอาร์เรย์ไว้แค่นี้นะครับ เพราะเป็นโครงสร้างข้อมูลที่คุ้นเคยกันดีที่สุด คงไม่ลงรายละเอียดอะไรที่พิสดาร (55) เอาไว้เรื่องอัลกอรึทึม จะได้หยิบยกอาร์เรย์มาใช้ให้หนำใจกันไปเลย


© 2017-2018 Solution Dee Co.,Ltd. All Rights Reserved.

Powered by Hydejack v7.3.0