zoukankan      html  css  js  c++  java
  • 冒泡排序

    思路:

      从第一个数开始,依次与下一个数比较,若下一个数比它小,则发生交换。这样每一次遍历都将其中最大的数冒泡到顶端,直到所有数冒泡完成则排序完成。

    时间复杂度:

      最好情况一次排序就完成,O(n)复杂度;最坏情况逆序,O(n2)复杂度。平均时间复杂度为O(n2)。

    代码:

     1 #include<iostream>
     2 using namespace std;
     3 void bubble_sort(int arr[], int len)
     4 {
     5     for(int i = 0; i < len - 1; i++)
     6     {
     7         int flag=1;
     8         for(int j = 0; j < len - 1 - i; j++)    //0到len-1-i即为需排序的数字下标范围
     9         {
    10             if(arr[j] > arr[j + 1])
    11             {
    12                 int temp = arr[j];
    13                 arr[j] = arr[j + 1];
    14                 arr[j + 1] = temp;
    15                 flag=0;    //发生了交换
    16             }
    17         }
    18         if(flag)
    19         {
    20             break;    //没发生交换说明排序已经完成了,可以提前退出,小优化
    21         }
    22     }
    23 }
    24 int main()
    25 {
    26     int arr[20];
    27     int len;
    28     while(cin >> len)
    29     {
    30         for(int i = 0; i < len; i++)
    31         {
    32             cin >> arr[i];
    33         }
    34         bubble_sort(arr, len);
    35         for(int i = 0; i < len - 1; i++)
    36         {
    37             cout << arr[i] << ' ';
    38         }
    39         cout << arr[len - 1] << endl;
    40     }
    41     return 0;
    42 }
  • 相关阅读:
    java设计模式
    漏桶算法工具类
    http请求requestUtils
    去掉字符串中特殊符号造成的空格
    java 分布式id生成算法
    java枚举
    java 32个Java面试必考点
    配置tomcat下war包可以自压缩
    tomcat (选号)公司tomcat无页面解决
    docker 12 docker容器数据卷
  • 原文地址:https://www.cnblogs.com/friend-A/p/9792672.html
Copyright © 2011-2022 走看看