Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C sắp xếp chọn (Selection Sort)


Selection Sort: tìm phần tử nhỏ nhất, đặt vào vị trí đầu. Tiếp tục với phần chưa sắp xếp. Ví dụ mảng {6,3,8,12,9}: nhỏ nhất 3 đặt đầu -> {3,6,8,12,9}. Tiếp tục tìm nhỏ nhất trong phần còn lại.

Các bước:

  • Đặt phần tử đầu làm min.
  • So sánh min với các phần tử tiếp theo, cập nhật min nếu nhỏ hơn.
  • Đặt min vào vị trí đầu phần chưa sắp xếp.
  • Lặp lại từ phần tử tiếp theo.

Ví dụ

#include <stdio.h>
int main() {
    int arr[10]={6,12,0,18,11,99,55,45,34,2};
    int n=10;
    int i, j, position, swap;
    for (i = 0; i < (n - 1); i++) {
        position = i;
        for (j = i + 1; j < n; j++) {
            if (arr[position] > arr[j])
                position = j;
        }
        if (position != i) {
            swap = arr[i];
            arr[i] = arr[position];
            arr[position] = swap;
        }
    }
    for (i = 0; i < n; i++)
        printf("%d\t", arr[i]);
    return 0;
}

Kết quả

0 2 6 11 12 18 34 45 55 99