Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อใช้งาน Sorted Array


อาร์เรย์ที่จัดเรียงเป็นอาร์เรย์ที่แต่ละองค์ประกอบถูกจัดเรียงตามลำดับ เช่น ตัวเลข ตัวอักษร ฯลฯ มีอัลกอริธึมมากมายในการจัดเรียงอาร์เรย์ตัวเลข เช่น การเรียงลำดับแบบฟอง การเรียงลำดับการแทรก การเรียงลำดับการเลือก การเรียงลำดับการผสาน การเรียงลำดับอย่างรวดเร็ว heap sort เป็นต้น รายละเอียดเพิ่มเติมเกี่ยวกับการเรียงลำดับอาร์เรย์โดยใช้การเรียงลำดับการเลือกแสดงไว้ด้านล่าง

การเรียงลำดับการเลือกเป็นวิธีการเรียงลำดับที่ให้ผลการเรียงลำดับอาร์เรย์ มันทำได้โดยการค้นหาองค์ประกอบที่เล็กที่สุดในอาร์เรย์ซ้ำแล้วซ้ำอีกและสลับกับองค์ประกอบที่จุดเริ่มต้นของส่วนที่ไม่ได้เรียงลำดับ

โปรแกรมที่ใช้ sorted array โดยใช้ Selection sort มีดังต่อไปนี้

ตัวอย่าง

#include<iostream>
using namespace std;
void selectionSort(int a[], int n) {
   int i, j, min, temp;
   for (i = 0; i < n - 1; i++) {
      min = i;
      for (j = i + 1; j < n; j++)
      if (a[j] < a[min])
      min = j;
      temp = a[i];
      a[i] = a[min];
      a[min] = temp;
   }
}
int main() {
   int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
   int n = sizeof(a)/ sizeof(a[0]);
   int i;
   cout<<"Given array is:"<<endl;
   for (i = 0; i < n; i++)
   cout<< a[i] <<" ";
   cout<<endl;
   selectionSort(a, n);
   printf("\nSorted array is: \n");
   for (i = 0; i < n; i++)
   cout<< a[i] <<" ";
   return 0;
}

ผลลัพธ์

Given array is:
22 91 35 78 10 8 75 99 1 67
Sorted array is:
1 8 10 22 35 67 75 78 91 99

ในโปรแกรมข้างต้น SelectionSort() เป็นฟังก์ชันที่จัดเรียงอาร์เรย์ a[] โดยใช้การเรียงลำดับการเลือก มีสองลูปใน selectSort() ในการวนซ้ำของ outer for loop แต่ละครั้ง จะพบองค์ประกอบขั้นต่ำในอาร์เรย์ที่เหลือหลังจาก i ถูกพบแล้วสลับกับองค์ประกอบที่ i ในปัจจุบัน ทำซ้ำจนกว่าจะจัดเรียงอาร์เรย์ ดังแสดงด้านล่าง

void selectionSort(int a[], int n) {
   int i, j, min, temp;
   for (i = 0; i < n - 1; i++) {
      min = i;
      for (j = i + 1; j < n; j++)
      if (a[j] < a[min])
      min = j;
      temp = a[i];
      a[i] = a[min];
      a[min] = temp;
   }
}

ในฟังก์ชัน main() อาร์เรย์ a[] ถูกกำหนดไว้ จากนั้นฟังก์ชัน selectSort() จะถูกเรียกด้วยอาร์เรย์ a[] และขนาด n ของอาร์เรย์ ในที่สุดอาร์เรย์ที่เรียงลำดับจะปรากฏขึ้น ดังแสดงด้านล่าง

int main() {
   int a[] = { 22, 91, 35, 78, 10, 8, 75, 99, 1, 67 };
   int n = sizeof(a)/ sizeof(a[0]);
   int i;
   cout<<"Given array is:"<<endl;
   for (i = 0; i < n; i++)
   cout<< a[i] <<" ";
   cout<<endl;
   selectionSort(a, n);
   printf("\nSorted array is: \n");
   for (i = 0; i < n; i++)
   cout<< a[i] <<" ";
   return 0;
}