zoukankan      html  css  js  c++  java
  • 冒泡排序(初级版)之C++实现

    冒泡排序(初级版)之C++实现

    一、源代码:BubbleSortLow.cpp

     1 /*冒泡排序思想:
     2 从第一个元素开始,对数组中两两相邻的元素比较,将值较小的元素放在前面,值较大的元素放在后面;
     3 一轮比较完毕,一个最大的数沉底成为数组中的最后一个元素,一些较小的数如同气泡一样上浮一个位置。
     4 n个数,经过n-1轮比较后完成排序。
     5 */
     6 #include<iostream>
     7 using namespace std;
     8 
     9 /*定义输出一维数组的函数*/
    10 void print(int array[], int n)
    11 {
    12     for (int i = 0; i < n; i++)
    13     {
    14         cout << array[i] << " ";
    15     }
    16     cout << endl;
    17 }
    18 
    19 /*定义冒泡排序的函数,升序排序,返回交换次数*/
    20 int bubbleSort(int array[],int n)
    21 {
    22     //定义变量,记录交换次数
    23     int count = 0;
    24     //定义中间变量temp
    25     int temp;
    26     //遍历数组(进行排序)
    27     cout << "开始对数组进行排序了..." << endl;
    28     for (int i = 0; i < n; i++)
    29     {
    30         for (int j = 0; j < n - 1 - i; j++)
    31         {
    32             cout << "" << (i + 1) << "趟第" << (j + 1) << "次排序" << endl;
    33             //如果左边的数大于右边的数就进行交换顺序
    34             if (array[j] > array[j + 1])
    35             {
    36                 temp = array[j];
    37                 array[j] = array[j + 1];
    38                 array[j + 1] = temp;
    39                 cout << array[j] << "" << array[j + 1] << "互换了" << endl;
    40                 //输出此时数组的顺序
    41                 cout << "数组此时的顺序是:";
    42                 print(array, 10);
    43                 //每交换一次,记录数加1
    44                 count++;
    45             }
    46         }
    47     }
    48     cout << "数组排序结束了..." << endl;
    49     return count;
    50 }
    51 
    52 int main()
    53 {
    54     //定义待排序的一维数组
    55     int array[] = { 1, 3, 4, 5, 2, 6, 10, 9, 8, 7 };
    56     //输出原始数组
    57     cout << "原始数组是:" << endl;
    58     print(array, 10);
    59     //对数组进行排序
    60     int count = bubbleSort(array, 10);
    61     //输出排序后的数组
    62     cout << "排序后的数组是:" << endl;
    63     print(array, 10);
    64     cout << "共交换" << count << "" << endl;
    65 }

    二、运行结果

  • 相关阅读:
    ansible
    爬虫框架之scrapy
    Mongodb
    xml 创建 添加节点或属性(自定义,复制)
    web站点崩溃的原因总结
    C# 关闭正在执行的文件
    254. Factor Combinations
    256. Paint House
    156. Binary Tree Upside Down
    170. Two Sum III
  • 原文地址:https://www.cnblogs.com/zfc-java/p/7390658.html
Copyright © 2011-2022 走看看