算法思想:

两两比较元素的主键值,如果二者的主键值次序相反,则调换顺序。在序列中遍历直至没有反序的元素为止。

算法特点:

在每次遍历后,主键值最大的元素会冒泡到顶端对应位置,因而得名。

算法步骤:

  1. 比较相邻的两个元素,如果第二个比第一个主键值小,交换两者位置;
  2. 遍历数组,对每一对相邻的元素执行步骤1的操作,这样在最后的元素就是最大的元素;
  3. 除了已经冒泡出来的元素以外,针对所有的元素重复以上步骤;
  4. 重复步骤1~3,直到排序完毕。
// 冒泡排序(Bubble Sort)
void BubbleSort(int arr[], int size) {
    for (int i = 0; i < size - 1; ++i) {
        for (int j = 0; j < size - 1 - i; ++j) {
            if (arr[j] > arr[j + 1]) {
                Swap(arr[j], arr[j + 1]);
            }
        }
    }
}

void Swap(int &a, int &b) {
    int tmp = a;
    a = b;
    b = tmp;
}
最后修改日期:2020年10月12日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。