zoukankan      html  css  js  c++  java
  • 冒泡排序(交换排序的一种)

    思想:(升序)相邻两个比较大小,如果前者大于后者,则互换;第一趟下来,最大的数就到正确位置上了。依此类推……

    冒泡排序是交换排序的一种。

    代码:

     1 // BubbleSort.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include <string.h>
     6 #define MAX_ARRAY_NUM 10
     7 void BubbleSort(int* i_Num)
     8 {
     9     int temp = 0;
    10     for (int i = 0; i < MAX_ARRAY_NUM - 1; i++)
    11     {
    12         for (int j = 0; j < MAX_ARRAY_NUM - i - 1; j++)
    13         {
    14             if (i_Num[j] > i_Num[j+1])
    15             {
    16                 temp = i_Num[j];
    17                 i_Num[j] = i_Num[j+1];
    18                 i_Num[j+1] = temp;
    19             }
    20         }
    21 
    22     }
    23     for (int i = 0; i < 10; i++)
    24     {
    25         printf("%d	", i_Num[i]);
    26     }
    27 }
    28 
    29 int _tmain(int argc, _TCHAR* argv[])
    30 {
    31     int aNum[10] = {9, 56, 45, 28, 78, 4, 8, 2, 0, 58};
    32 
    33     BubbleSort(aNum);
    34     return 0;
    35 }

    时间复杂度:

    第一趟排序需要比较n-1次,第二趟需要比较n-2次,……,最后一趟只需比较1次,因此复杂度为:(n-1)+(n-2)+……+2+1 = 1/2*n^2-1/2*n,去掉低阶项,去掉常数系数,即复杂度为O(n^2)。

    稳定性:

    稳定性指原来待排序的原序中间有相同的元素,在没有排序之前它们之间有先后顺序,在排完之后它们的先后顺序不变,就称为这个算法是稳定的。因此,冒泡是一个稳定的排序,因为如果两个元素值相同,则位置不进行交换。

  • 相关阅读:
    从U盘安装Windows 7 / Vista / 2008
    Windows 7 Enterprise 微软官方90天评估序列号
    Windows 2008 Vista 安装sp2后释放C盘空间
    Windows 7 一年试用批处理
    Windows 2008 R2 试用版序列号
    又出来一个OEM的序列号
    查看 windows 7 激活信息的相关命令
    最新一组OEM Key
    Windows 7 / Vista 分区问题
    MSN 9 多开设置
  • 原文地址:https://www.cnblogs.com/cinvzi/p/8108251.html
Copyright © 2011-2022 走看看