冒泡排序算法

内部排序

直接插入排序算法

折半插入排序

希尔排序算法

外部排序

cpp 复制代码
void swap(int *a, int *b){
    int tmp = *a;
    *a = *b;
    *b = tmp;
}

// 冒泡排序
void BubbleSort(int A[], int n){
    for (int i = 0; i < n-1; ++i) {
        // 判断本趟冒泡是否发生交换的标志
        bool flag = false;
        for (int j = n-1; j > i; --j) {
            if (A[j-1] > A[j]){
                swap(&A[j-1], &A[j]);
                flag = true;
            }
        }
        if(!flag){
            break;
        }
    }
}

int main() {
    int a[] = {0, 3, 4,6,8,5,7,9,2,1};
    int len = sizeof(a) / sizeof(a[0]);
    BubbleSort(a, len);
    for (int i = 0; i < len; ++i) {
        printf("%d\n", a[i]);
    }
    return 0;
}

执行结果