Bubble Sort ทำงานอย่างไร ?

head

 

เพื่อน ๆ หลายคนอาจสงสัยในการทำงานของ Bubble Sort ซึ่งจริงๆแล้วถ้าเราต้องใจมองก็จะเห็นได้ว่ามันไม่ยากอย่างที่คิด

ดังนั้นเราไปชม การทำงานของ Bubble Sort กันเลย

YouTube Preview Image

หากท่านดูคลิปแล้วยังรู้สึก งง ๆ ลองอ่านทางนี้ดูนะครับ ^^

  1.   private static void bubbleSort(int[] intArray) {
  2.                 int n = intArray.length;
  3.                 int temp = 0;
  4.                 for(int i=0; i < n; i++){
  5.                         for(int j=1; j < (ni); j++){
  6.                                 if(intArray[j1] > intArray[j]){
  7.                                         //swap the elements!
  8.                                         temp = intArray[j1];
  9.                                         intArray[j1] = intArray[j];
  10.                                         intArray[j] = temp;
  11.                                 }
  12.                         }
  13.                 }
  14.         }

จาก code เราทำการตั้งค่า จำนวนของ array ลงที่ตัวแปร n ซึ่งถ้า array มี 5 ตัว n ก็ = 5 นั่นเอง และเราจะทำการตั้งตัวแปรไว้เฉย ๆ มา 1 ตัวชื่อว่า temp  ให้เท่ากับ 0

เมื่อเข้า loop for นั้น เรากำหนดให้ i=0 และ i น้อยกว่า n และเพิ่มขึ้นเรื่อย ๆ ถ้ายังอยู่ในเงื่อนไขก็เข้าฟังก์ชั่นต่อไป

คือเข้า loop for อีก loop ซึ่ง loop นี้ ตั้งเงื่อนไขว่า j = 1 แล้ว j< n-1 และ n เพิ่มขึ้นเรื่อย ๆ ถ้ายังอยู่ในเงื่อนไขก็เข้าการทำงานต่อไป แต่ถ้าหาก j=n-1 เมื่อใดก็กลับสู่ loop for ที่แล้วและวนกลับมาอีกครั้งจนกว่าจะครบรอบ

การทำงานต่อไปคือ if ตัว array ตัวที่ j-1 มากกว่า array ตัวที่ j จะทำการ swap โดยเริ่มจาก

เก็บค่า  array[j-1] ไปไว้ที่ temp เพื่อเก็บไว้ในการสับเปลี่ยนตอนสุดท้าย

และนำ array[j] มาเปลี่ยนกับ array[j-1]

จากนั้น นำ temp มาลงใน array[j]

ถ้าหากตัว array[j-1] น้อยกว่า array[j] จะไม่มีกระบวนการนี้เกิดขึ้นและกลับไป loop for ที่แล้วเพื่อทำการเพิ่ม j จนกว่าจะหลุด loop และกลับไป loop for i อีกครั้งและเพิ่ม i จนกว่าจะครบเงื่อนไขนั่นเอง

  •  
  •  
  •  
  •  
  •  
  •  
Thanakorn Thipgrathok
at GlurGeek.Com
เรียนวิศวกรรมศาสตร์ สาขาคอมพิวเตอร์
ชอบเล่นกีตาร์ อ่านหนังสือ และนอนหลับ
ตอนนี้กำลังหัดเขียน website

Leave a Reply