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

อธิบายแนวคิดการเรียงลำดับในภาษาซี


ปัญหา

ทำไมการเรียงลำดับทำให้การค้นหาในภาษา C ง่ายขึ้น? คุณจะตัดสินประสิทธิภาพการคัดแยกในภาษา C ได้อย่างไร

วิธีแก้ปัญหา

การเรียงลำดับเป็นกระบวนการของการจัดเรียงองค์ประกอบทั้งจากน้อยไปมาก (หรือ) จากมากไปหาน้อย

  • คำว่า sorting เกิดขึ้นเมื่อมนุษย์ตระหนักถึงความสำคัญของการค้นหาอย่างรวดเร็ว

  • มีหลายสิ่งในชีวิตที่เราต้องค้นหา โดยเฉพาะบันทึกในฐานข้อมูล หมายเลขม้วนในรายการ หมายเลขในสมุดโทรศัพท์ หน้าเฉพาะในหนังสือ ฯลฯ

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

  • การจัดเรียงจะจัดเรียงข้อมูลตามลำดับซึ่งทำให้การค้นหาง่ายขึ้น

ประสิทธิภาพการจัดเรียง

  • หากเราต้องการจัดสำรับไพ่ตามลำดับ เราจะเริ่มโดยการตรวจสอบไพ่ทุกใบ จากนั้นจึงจัดสำรับไพ่เมื่อเราดำเนินการต่อไป

  • การจัดสำรับไพ่ต้องใช้เวลามากในการจัดลำดับ แต่เราก็ทำในลักษณะเดียวกัน แต่คอมพิวเตอร์ไม่ทำงานแบบนี้

  • ตั้งแต่เริ่มต้นยุคการเขียนโปรแกรม นักวิทยาศาสตร์ได้ทำงานเพื่อแก้ปัญหาการจัดเรียงโดยใช้อัลกอริทึมต่างๆ เพื่อจัดเรียงข้อมูล

เกณฑ์ในการตัดสินว่าอัลกอริธึมใดดีกว่าแบบอื่นมีดังนี้ -

  • เวลาที่ใช้ในการจัดเรียงข้อมูลที่กำหนด
  • ต้องใช้พื้นที่หน่วยความจำในการทำเช่นนั้น

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C สำหรับการเรียงลำดับข้อมูล -

#include<stdio.h>
int main(){
   int a[50], i,j,n,t,sm;
   printf("enter the No: of elements in the list:\n");
   scanf("%d", &n);
   printf("enter the elements:\n");
   for(i=0; i<n; i++){
      scanf ("%d", &a[i]);
   }
   for (i=0; i<n-1; i++){
      sm=i;
      for (j=i+1; j<n; j++){
         if (a[j] < a[sm]){
            sm=j;
         }
      }
      t=a[i];
      a[i]=a[sm];
      a[sm]=t;
   }
   printf ("after selection sorting the elements are:\n");
   for (i=0; i<n; i++)
      printf("%d\t", a[i]);
   return 0;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

ผลลัพธ์

enter the No: of elements in the list:
4
enter the elements:
34
12
56
7
after selection sorting the elements are:
7 12 34 56