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 mảng tăng dần bằng thuật toán Bubble Sort

Bubble Sort (sắp xếp nổi bọt) là thuật toán sắp xếp đơn giản nhất, còn gọi là sắp xếp trao đổi (exchange sort).

Thủ tục

  • So sánh phần tử đầu với các phần tử còn lại, hoán đổi nếu không theo thứ tự.
  • Lặp lại cho các phần tử khác cho đến khi mảng được sắp xếp.

Thuật toán

bub_sort(list, num):
  for i = 0 to num-1
    for j = 0 to num-i-1
      if list[j] > list[j+1]
        swap(list[j], list[j+1])

Chương trình C hoàn chỉnh

#include <stdio.h>
#define MAX 10

void swapList(int *m, int *n) {
    int temp = *m;
    *m = *n;
    *n = temp;
}

void bub_sort(int list[], int n) {
    int i, j;
    for (i = 0; i < (n-1); i++)
        for (j = 0; j < (n-(i+1)); j++)
            if (list[j] > list[j+1])
                swapList(&list[j], &list[j+1]);
}

void readlist(int list[], int n) {
    int j;
    printf("\nNhập các phần tử:\n");
    for (j = 0; j < n; j++)
        scanf("%d", &list[j]);
}

void printlist(int list[], int n) {
    int j;
    for (j = 0; j < n; j++)
        printf("%d\t", list[j]);
}

void main() {
    int list[MAX], num;
    printf("Nhập số lượng phần tử:\n");
    scanf("%d", &num);
    readlist(list, num);
    printf("\nMảng trước khi sắp xếp:\n");
    printlist(list, num);
    bub_sort(list, num);
    printf("\n\nMảng sau khi sắp xếp:\n");
    printlist(list, num);
}

Kết quả

Nhập số lượng phần tử: 10
Nhập các phần tử: 11 23 45 1 3 6 35 69 10 22
Mảng trước khi sắp xếp: 11 23 45 1 3 6 35 69 10 22
Mảng sau khi sắp xếp: 1 3 6 10 11 22 23 35 45 69