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

Giải thích quy trình sắp xếp lựa chọn trong ngôn ngữ C

Lựa chọn Sắp xếp là một thuật toán tấn công hoạt động để tìm số nhỏ nhất từ ​​một mảng và sau đó đặt nó vào vị trí đầu tiên. Mảng tiếp theo sẽ được duyệt qua sẽ bắt đầu từ chỉ mục, bên cạnh vị trí, nơi đặt số nhỏ nhất.

Quy trình sắp xếp lựa chọn

  • Chọn phần tử nhỏ nhất đầu tiên trong danh sách các phần tử và đặt nó ở vị trí đầu tiên.

  • Lặp lại tương tự cho các phần tử còn lại trong danh sách cho đến khi tất cả các phần tử được sắp xếp.

Xem xét danh sách sau -

Giải thích quy trình sắp xếp lựa chọn trong ngôn ngữ C

Thẻ đầu tiên

Sm = a[0] = 30 Sm

a [1]

a [2]

a [3]

a [4]

10 50 40 30 20

Thẻ thứ hai

Giải thích quy trình sắp xếp lựa chọn trong ngôn ngữ C

Sm = a[1] = 50 sm

a [2]

a [3]

a [4]

10 20 40 30 50

Thẻ thứ ba

Giải thích quy trình sắp xếp lựa chọn trong ngôn ngữ C

Sm = a[2] = 40 Sm

a [3]

a [4]

10 20 30 40 50

Lượt đi thứ tư

Giải thích quy trình sắp xếp lựa chọn trong ngôn ngữ C

Sm = a[3] = 40 Sm

a [4] <$ \ square $ $ \ square $ sm 50 <40 (F) $ \ square $ 40 $ \ square $ Exchange a [3] với giá trị sm

Quy trình

Tham khảo quy trình đưa ra bên dưới để sắp xếp lựa chọn.

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

Ví dụ

Sau đây là chương trình C cho kỹ thuật sắp xếp lựa chọn -

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

enter the No: of elements in the list:
4
enter the elements:
45
12
37
68
after selection sorting the elements are:
12 37 45 68