• 排序算法——冒泡排序


    算法思想:

    • 通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。
    • 冒泡排序的时间复杂度为O(n^2)
    • 冒泡排序是稳定的排序算法

    举例:

    4 2 3 1 5

    第一趟冒泡

    第一轮:2 4 3 1 5

    第二轮:2 4 1 3 5

    第三轮:2 1 4 3 5

    第四轮:1 2 4 3 5

    得到最小的元素1排在最前面

    第二趟冒泡:

    第一轮:1 2 4 3 5

    第二轮:1 2 3 4 5

    第三轮:1 2 3 4 5

    得到次大的元素2在第二个位置上

    对剩下的序列依次冒泡就会得到一个有序序列

    代码:

     1 #include <iostream>
     2 using namespace std;
     3 
     4 int a[] = { 4,2,3,1,5 };
     5 void BubbleSort(int* a,int n) {
     6     for(int i=0;i<n-1;i++)//定义趟数
     7         for (int j = n - 1; j > i; j--) {
     8             int tmp;
     9             if (a[j - 1] > a[j]) {
    10                 tmp = a[j - 1];
    11                 a[j - 1] = a[j];
    12                 a[j] = tmp;
    13             }
    14         }
    15 }
    16 
    17 int main() {
    18     BubbleSort(a, 5);
    19     for (int i = 0; i < 5; i++)
    20         cout << a[i] << " ";
    21     return 0;
    22 }
  • 相关阅读:
    垃圾回收机制,正则模块
    日常模块
    文件路径带有字符串的处理方法
    QT进制之间的相互转换
    4-7 selectors模块
    4-5 异步IO模型
    4-4 多路复用IO模型
    4-3 非阻塞IO
    4-2 阻塞IO
    4-1 IO模型介绍
  • 原文地址:https://www.cnblogs.com/PennyXia/p/12625154.html
Copyright © 2020-2023  润新知