Computer >> Máy Tính >  >> Lập trình >> lập trình C

Giải thích khái niệm Sắp xếp trong ngôn ngữ C

Vấn đề

Tại sao việc sắp xếp lại giúp tìm kiếm dễ dàng hơn trong ngôn ngữ C? Làm thế nào bạn có thể đánh giá hiệu quả sắp xếp trong C?

Giải pháp

Sắp xếp là quá trình sắp xếp các phần tử theo thứ tự tăng dần (hoặc) giảm dần.

  • Thuật ngữ sắp xếp ra đời khi con người nhận ra tầm quan trọng của việc tìm kiếm nhanh chóng.

  • Có những thứ khác nhau trong cuộc sống mà chúng ta cần tìm kiếm, cụ thể là bản ghi trong cơ sở dữ liệu, số cuộn trong danh sách, số trong danh bạ điện thoại, một trang cụ thể trong sách, v.v.

  • Nếu dữ liệu được giữ ở dạng không có thứ tự và không được sắp xếp, thì việc tìm kiếm một thứ cụ thể sẽ trở nên khó khăn. Nhưng may mắn thay, khái niệm sắp xếp đã ra đời, giúp mọi người sắp xếp dữ liệu theo thứ tự dễ dàng hơn.

  • Sắp xếp sắp xếp dữ liệu theo một trình tự giúp tìm kiếm dễ dàng hơn.

Hiệu quả sắp xếp

  • Nếu chúng ta muốn sắp xếp một bộ bài theo thứ tự, chúng ta sẽ bắt đầu bằng cách kiểm tra từng quân bài và theo đó, sắp xếp bộ bài khi chúng ta tiếp tục.

  • Mất rất nhiều thời gian để sắp xếp bộ bài theo thứ tự, nhưng chúng tôi vẫn làm theo cách tương tự. Tuy nhiên, máy tính không hoạt động như vậy.

  • Ngay từ đầu của thời đại lập trình, các nhà khoa học đã nghiên cứu giải quyết vấn đề sắp xếp bằng các thuật toán khác nhau để sắp xếp dữ liệu.

Tiêu chí để đánh giá thuật toán nào tốt hơn thuật toán kia như sau -

  • Thời gian cần thiết để sắp xếp dữ liệu đã cho.
  • Cần có Dung lượng bộ nhớ để làm như vậy.

Ví dụ

Sau đây là chương trình C để sắp xếp dữ liệu -

#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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Đầu ra

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