`

冒泡排序 - C++分析实现

 
阅读更多

 

冒泡排序:

 

 

 

 

 

◆实例:农民选种子的时候会把所有的种子放到水里,颗粒饱满的下沉 ,颗粒不饱满的漂到上面这类似于一种冒泡排序。

 

 

 

 

 

 

 

◆特点:1:每次只能比相邻的两个元素

a[i]<a[i+1])相比

2:如果顺序不合适就交换

 

 


 

 

 

☞: 适合少量数据的情况,如果乱序 数据量大 最好不要用

 

 

 

 

 

 

 

:算法描述:

 

 

1:一轮比较所有相邻数据,如果顺序不对就发生交换; =>for(`````````````)

 

 

 

2本轮只要发生了交换、就再来一轮如果没有发生交换排序成功。  =>先做后判断所以适合dowhile

 

 

 

 

 

 

 3: 算法优化,每次可以少比较一个比较的个数减一:

 

 

 

 

 

 

 

 

 

 

 

 

◆:代码:

#include <iostream> 
#include <ctime> 
using namespace  std; 
//算出运算所用事件 
 
//定义 BubbleSort 方法   
typedef  int    T; 
void    BubbleSort (T*  arr, int num) 
{ 
     //比较一组数据 如果出现了交换 则继续排序  直到没有出现则表示排序成功 
        //=> do while循环 
//定义标记 每一次循环的比较 
        bool    bDoSwap = false;  // 
    do { 
        bDoSwap = false; //每次循环设置默认为没有发生交换 
        //循环遍历 
        for ( int i =0; i<num-1; i++) 
        { 
            //大的后移 
            if(arr[i] > arr[i+1]) { 
                swap(arr[i], arr[i+1]); 
                //修改标记 
                bDoSwap = true; 
            } 
        } 
        //算法优化  令num - 1  因为每次比较结束后  最后一个是最大的 所以最后一个无需再次比较 
         num--; 
    }while(bDoSwap); 
} 
     
 
int main() 
{ 
    cout << "冒泡排序:"<<endl; 
 //定义102400长度的数组 越长越能计算所需世间   赋值 
    const int kNum = 10240; 
    T arr[kNum]; 
    for (int i=0; i<kNum; i++) 
    { 
        arr[i] = kNum - i; 
    } 
    time_t tStart = time(NULL); 
    BubbleSort(arr, kNum); 
    time_t tEnd = time(NULL); 
     
    cout<<"require time:"<<tEnd-tStart <<endl; 
    //打印前十个看看是否完成排序 
    for(int i =0; i<10; i++) 
    { 
        cout<<arr[i]<<"     "; 
    } 
    system("pause"); 
    return 0; 
 
} 
 

结果:

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    --C++冒泡排序--

    --C++冒泡排序--

    冒泡排序的c++代码实现

    下面我们将详细探讨冒泡排序的原理、C++实现以及相关知识点。 ### 冒泡排序原理 冒泡排序的基本思想是,对于未排序的序列,每次比较相邻的两个元素,如果它们的顺序错误就交换位置。这个过程会重复进行,直到序列中...

    冒泡排序具体C++代码实现(dev测试通过)

    冒泡排序具体C++代码实现(dev测试通过),能输出每趟排序后的结果,排序过程中比较的总次数以及最终的排序结果,输入形式为空格隔开的连续正整数,输入-1表示结束输入

    冒泡排序算法c++实现

    在C++中实现冒泡排序,我们需要理解C++的基本语法,包括数组、条件判断语句(if)、循环结构(for或while)以及函数调用。以下是一个简单的C++冒泡排序代码示例: ```cpp #include #include void bubbleSort(int...

    冒泡排序的C++实现

    现在,我们将深入探讨冒泡排序的C++实现。 在C++中,冒泡排序可以使用以下步骤来实现: 1. **初始化**:首先,我们需要一个包含待排序元素的数组。在C++中,可以声明一个整型数组,并填充一些随机或预定义的数值。...

    C++语言的算法实现包括插入排序冒泡排序堆排序快速排序

    本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...

    基于C++冒泡排序法

    C++是广泛应用于系统编程、应用编程、游戏开发等多个领域的强大编程语言,因此用C++实现冒泡排序是常见的实践练习。 冒泡排序的工作原理基于比较和交换相邻元素的过程。它重复地遍历待排序的数列,一次比较两个元素...

    冒泡排序法C++实现

    在C++中实现冒泡排序,可以清晰地理解控制流程和数组操作。以下将详细介绍冒泡排序法及其C++实现。 冒泡排序的基本思想是通过比较相邻元素的大小,将较大的元素逐渐“冒泡”到数组的一端,即排序的末尾。这个过程会...

    冒泡排序(C++源代码)

    本篇文章将详细介绍一个用C++实现的冒泡排序算法。冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行的,直到没有再需要...

    冒泡排序算法的C++函数模板

    在实际应用中,冒泡排序算法的C++函数模板可以在许多领域中发挥重要作用,例如数据分析、科学计算、机器学习等。在这些领域中,快速、高效的排序算法可以大大提高计算速度和降低计算成本。 冒泡排序算法的C++函数...

    插入排序、冒泡排序、归并排序、快速排序的C++实现

    插入排序、冒泡排序、归并排序、快速排序四种排序方式的C++实现,各写成了一个函数,主函数中可以选择调用那一个。初始化数组时用的是随机种子srand((int)time(0))。在宏中定义数组大小。

    冒泡排序 的动态演示 动画 C++写

    在本项目中,我们将深入探讨C++如何实现冒泡排序的动态演示动画。这个程序不仅会进行排序,还会以动画的形式展示排序的过程,帮助用户直观地理解冒泡排序的工作原理。 首先,我们要理解冒泡排序的基本思想。冒泡...

    冒泡排序——C++代码

    在本案例中,我们讨论的是用C++实现冒泡排序的方法。 C++是面向对象的编程语言,尽管冒泡排序更常与C语言关联,但其实它同样适用于C++。C++提供了丰富的库函数和语法特性,使得编写排序算法更为便捷。下面,我们将...

    C++中的冒泡排序C++中的冒泡排序C++中的冒泡排序

    C++中的冒泡排序 C++中的冒泡排序C++中的冒泡排序C++中的冒泡排序C++中的冒泡排序 C++中的冒泡排序 C++中的冒泡排序 C++中的冒泡排序

    快速排序,冒泡排序,选择排序C++源代码

    用C++写了以上三种排序算法,对初学数据结构的同学一个参考

    冒泡排序c++源程序

    根据给定的文件信息,我们可以深入探讨冒泡排序算法及其在C++中...通过分析和理解冒泡排序的C++实现,不仅可以加深对排序算法的理解,还能掌握如何在C++中利用模板类和成员函数来封装算法,提高代码的复用性和通用性。

    c++冒泡排序,从小到大排序或者从大到小

    在探讨C++冒泡排序这一知识点时,我们不仅会深入理解冒泡排序的基本原理、算法实现,还会细致分析如何在C++中灵活运用该算法进行数据的升序或降序排列。冒泡排序是一种简单的排序算法,其基本思想是通过重复地走访待...

    学生信息按序输出_冒泡排序_C++变量引用实现

    学生信息按序输出_冒泡排序_C++变量引用实现 对学生学习很有好处!!!

    冒泡排序_冒泡排序_

    在C++中实现冒泡排序,我们可以使用嵌套循环来完成这一过程。外层循环通常用于控制整个排序过程的轮数,而内层循环则负责每一轮中的元素比较与交换。以下是C++实现冒泡排序的基本步骤: 1. **初始化**:首先,定义...

    C++ 冒泡排序算法实现代码

    C++ 冒泡排序算法实现代码,用C++编写的冒泡排序算法代码。

Global site tag (gtag.js) - Google Analytics