精华内容
下载资源
问答
  • 冒泡排序c++实现冒泡排序代码

    千次阅读 2020-12-08 16:58:39
    冒泡排序c++实现冒泡排序代码 冒泡排序的基本思想: 冒泡排序的核心是对所有相邻数组元素的值进行比较,如果是逆序(a[i]>a[i+1]),则两者交换,最终达到有序。 步骤: (1)比较第一个数a[0]和第二个数a[1],...

    【冒泡排序】c++实现冒泡排序代码

    冒泡排序的基本思想

    冒泡排序的核心是对所有相邻数组元素的值进行比较,如果是逆序(a[i]>a[i+1]),则两者交换,最终达到有序。

    步骤

    (1)比较第一个数a[0]和第二个数a[1],如果a[0]>a[1],则,两个数组元素的值交换;然后接着比较第二个数a[1]和第三个数a[2],以此类推,直到第n-1个数a[n-1]与第n个数a[n]比较为止。这个过程是第一趟冒泡排序,其结果是将数组中最大的值放到了最后一个位置上。

    (2)第二趟冒泡排序,是对前n-1个元素做第一步的处理,结果使第二大的数放在倒数第二个位置上。

    (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束。

    程序代码如下:

    #include<iostream>
    using namespace std;
     
    void print(int arr[], int n)
    {  
        for(int j= 0; j<n; j++)
    	{  
               cout<<arr[j] <<"  ";  
            }  
        cout<<endl;  
    }  
     
    void BubbleSort(int arr[], int n)
    {
        for (int i = 0; i < n - 1; i++)
    	{
                for (int j = 0; j < n - i - 1; j++)
    	        {
                        if (arr[j] > arr[j + 1]) 
    			{
                                int temp = arr[j];
                                arr[j] = arr[j + 1];
                                arr[j + 1] = temp;
                            }
                     }
             }
    }
     
    int main()
    {  
        int s[10] = {8,1,9,7,2,4,5,6,10,3};  
        cout<<"初始序列:";  
        print(s,10);  
        BubbleSort(s,10);  
        cout<<"排序结果:";  
        print(s,10);  
        system("pause"); 
    } 
    

    时间复杂度:O(n^2) 空间复杂度: O(1) 稳定排序

    展开全文
  • C++排序算法之冒泡排序源码
  • 冒泡排序算法C++

    2021-07-28 22:55:33
    冒泡排序算法比较简单,就是从左到右两两比较大小,比如升序排序,则把较大元素放到后面,第一轮结束后,开始第二轮比较排序;第二轮到第n-1个元素,一只到第n-1轮到比较最开始的两个元素则终止比较, 下面实现代码...

    冒泡排序算法比较简单,算法思想主要是双层循环,外层循环进行n-1趟排序,内层循环依次从左到右紧挨着的两个元素比较大小,内层循环的终止条件由外层循环的变量j控制。

    注意:冒泡排序时间复杂度是O(n^2),空间复杂度为O(1),是稳定排序算法(排序前后相对位置不变)

    下面实现代码:

    #include <iostream>
    #include <vector>
    
    using namespace std;
    class Sort {
    public:
        void bubble(vector<int>& nums) {
            for (int j = nums.size() - 1; j > 0; --j) // 外层循环控制内层循环终止条件
                for (int i = 0; i < j; ++i) // 内层循环每趟比较出一个最大值放“最后面”
                    if (nums[i] >= nums[i + 1]) // 前面比后面大则交换
                        std::swap(nums[i], nums[i + 1]);
        }
    };
    
    int main()
    {
        vector<int> nums = { 2,0,1,6,8,10,5,99,87,333,2,0,1 };
        Sort{}.bubble(nums);
        for (const auto& it : nums)
            cout << it << ",";
        cout << endl;
    	return 1;
    }

    展开全文
  • 冒泡排序C++实现

    2017-03-05 12:30:30
    文档提供了冒泡排序C++实现算法
  • 学习用C++写冒泡排序

    2019-05-27 20:15:54
    由于有时候会遇到用C++做算法,但却只熟悉Python,于是尝试学习学习C++做算法,下面了个冒泡排序,前面用Python的,后面用C++写的,对于做算法两种语言实际使用起来感觉差别不大,很多人说C++特别特别难,把一些...

    由于有时候会遇到用C++做算法,但却只熟悉Python,于是尝试学习学习C++做算法,下面写了个冒泡排序,前面用Python写的,后面用C++写的,对于做算法两种语言实际使用起来感觉差别不大,很多人说C++特别特别难,把一些想学C++的朋友吓得半死,写此博客记录一下本次学习过程,展示C++比pyhton难多少,希望能给其他不会用C++的朋友降低降低门槛,克服一些畏惧心理,或许本人对于它们的学习难度有些误解,但至少也可以通过本例看出C++并没有一些人故意吹的那么难。


    冒泡排序(Bubble Sort)

    简述:

    重复进行相邻数组元素的两两比较,并按规则进行交换,直到没有元素再需要交换。最终使得大的元素逐渐沉到数列底部,相较小的元素浮现到数列前端。

    算法分析:

    最好:T(n)=O(n);数据全部正序 
    最差:T(n)=O(n^2);数据全部反序 
    平均:T(n)=O(n^2);


    Python代码:

    def bubble_sort(a):
        len_a = len(a)
        for i in range(len_a):
            for j in range(i+1, len_a):
                if a[i] > a[j]:#只要前面大于后面就互换
                    a[i], a[j] = a[j], a[i]
        return a
    
    a = [520,0,1,9,56,100,1,85,5,3,6]
    print(bubble_sort(a))

    C++代码:

    #include<iostream>
    using namespace std;
    
    void bubble_sort(int a[], int len)
    {
        for (int i=0; i<len; i++)
        {
            for (int j=i+1; j<len; j++)
            {
                if (a[i] > a[j])//只要前面大于后面就互换
                {
                    swap(a[i], a[j]);
    //                int temp = a[i];
    //                a[i] = a[j];
    //                a[j] = temp;
                }
            }
        }
    
    }
    
    int main()
    {
        int a[] = {520,0,1,9,56,100,1,85,5,3,6};
        int len = sizeof(a) / sizeof(a[0]);
        bubble_sort(a, len);
        for (int i =0; i<len; i++)
        {
            cout<<" "<<a[i];
        }
        return 0;
    }
    
    
    

    CSDN上写代码写得少,不知道怎么把代码背景变黑, 不影响复制下来自己跑,将就着看哈。。。

    展开全文
  • 本文实例为大家分享了C++实现冒泡排序的具体代码,供大家参考,具体内容如下 一、思路: 冒泡排序算法原理: 1.比较相邻的元素。如果第一个数比第二个数大,就交换他们两个。 2.对每一对相邻元素做同样的工作,从...
  • c++实现冒泡排序

    万次阅读 2016-05-31 17:10:47
    冒泡排序:依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数"滚动"到最后一个位置;第二...

    冒泡排序:依次比较相邻的数据,将小数据放在前,大数据放在后;即第一趟先比较第1个和第2个数,大数在后,小数在前,再比较第2个数与第3个数,大数在后,小数在前,以此类推则将最大的数"滚动"到最后一个位置;第二趟则将次大的数滚动到倒数第二个位置......第n-1(n为无序数据的个数)趟即能完成排序。对冒泡排序算法进行简单的优化,用一个标记来记录在一趟的比较过程中是否存在交换,如果不存在交换则整个数组已经有序退出排序过程,反之则继续进行下一趟的比较。

    平均时间复杂度:O(n2),效率不高,适合小数据排序

    空间复杂度:O(1)  (用于交换)

    稳定性:稳定

    //冒泡排序,两种方法冒泡排序的最小时间代价θ(n),最大时间代价,和平均时间代价均为θ(n²)。,2016.5.29
    #include <iostream>
    using namespace std;
    void swap(int array[], int i, int j)
    {
    	int temp = array[i];
    	array[i] = array[j];
    	array[j] = temp;
    }
    void BubbleSort1(int array[], int n)
    {
    	for (int i = 0; i < n-1; i++)
    	{
    		for (int j = i + 1; j < n-1; j++)
    		{
    			if (array[i]>array[j])
    				swap(array, j, i);//每次i后面的元素比array[i]小就交换。
    		}
    	}
    }
    void BubbleSort2(int array[], int n)
    {
    	for (int i = 0; i < n - 1; i++)
    	{
    		for (int j = n - 1; j >= i;j--)
    		{
    			if (array[j - 1]>array[j])//从后面到i个元素两两比较,把小的不断上顶
    				swap(array, j, j - 1);
    		}
    	}
    }
    void main()
    {
    	int arr[13];
    	cout << "请输入要排序的元素:" << endl;
    	for (int i = 0; i < 13; i++)
    	{
    		cin >> arr[i];
    	}
    	//cout << "排序前的无序数组元素" << arr[i] << endl;
    	BubbleSort1(arr, 13);
    	cout << "排序后的数组元素" << endl;
    	for (int i = 0; i < 13; i++)
    	{
    		cout << arr[i] << endl;
    	}
    	BubbleSort2(arr, 13);
    	cout << "排序后的数组元素" << endl;
    	for (int i = 0; i < 13; i++)
    	{
    		cout << arr[i] << endl;
    	}
    	system("pause");
    }


    展开全文
  • c++冒泡排序示例分享

    2020-12-26 10:21:48
    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是...
  • 基于C++冒泡排序

    2014-12-19 09:37:47
    数据结构课程的作业,著名的冒泡排序法,关于数组的
  • 冒泡排序:通过不断比较数组中两个数的位置,按照一定顺序(升序或者降序)将每个数字一点一点排好. 举例说明 需要排序数组: 1 2 3 4 5 要求将其从大到小重新排序,则步骤为: Round 1:从第一位数字开始进行...
  • C++ 冒泡排序算法实现代码,用C++编写的冒泡排序算法代码。
  • 冒泡排序C++实现

    2019-03-03 18:54:02
    数据结构-冒泡排序法的C++实现工程,基于Visual Stdio2017
  • 利用C++实现冒泡排序

    2021-11-12 21:27:17
    简单介绍一下冒泡排序:现有一数组,假设要从小到大对n个数组元素进行排序。从第一个元素开始两两比较,如果后一个元素比当前元素小,它们两个交换位置,共比较n-1次。第一趟比较完以后,数组最后那个元素的值肯定是...
  • 首先说一下冒泡排序的基本算法思想: 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 这个算法的名字由来是因为越小的元素会经由交换慢慢...
  • C++:冒泡排序

    2021-02-20 18:07:48
    冒泡排序法1.冒泡排序法的原理2.代码实现注意事项 1.冒泡排序法的原理 其原理是依次把数组中相邻两个数比较大小来决定是否换顺序,从而把最大(小)的数字排在最前(后)的方法。 例如:假设一维数组arr[5]={1,4,2,5...
  • C++实现冒泡排序

    2020-09-27 21:49:09
    C++实现冒泡排序 总之先百度一个冒泡排序的原理图。 根据冒泡排序可以实现数列的正序或倒序。 问题 排序算法代码本身没什么好说的。在最初对数组长度设置时选择先定义数组大小,再计算数组长度,算是一个比较常见的...
  • c++经典排序之冒泡排序算法

    千次阅读 2019-11-18 18:52:25
    c++冒泡排序算法实现 冒泡排序,是一种计算机科学领域的较简单的排序算法。它通过遍历要排序的元素,依次比较相邻元素的大小,如果前面的元素大于后面的元素,则交换两个元素的位置。因此,在第一趟遍历完成时,会把...
  • C++经典冒泡排序,原来如此简单!

    万次阅读 2019-07-29 19:47:01
    冒泡排序,说起来应该是最简单的。给出一组无序数组,用什么方法来进行排序呢。比如2、3、7、1、6这组数据,要将它按照从小到大的顺序排列起来。首先想到将第一个数A与后面的数比较如果后面的数比较大,那么这两个数...
  • c++冒泡排序.cpp

    2020-05-23 13:20:18
    C++冒泡排序法。
  • 冒泡排序
  • 数据结构,单链表冒泡排序数据结构,C++实现,可输入式程序
  • C++实现冒泡排序

    千次阅读 2018-05-24 23:03:55
    下面Jungle用C++实现两种冒泡排序法: ①传统的冒泡排序法sort_Bubble:内外两轮循环,前后两个数据依次比较; ②改进的冒泡排序法sort_Bubble2:同样是内外两次循环,但用一个标记来标识当前这一轮是否发生数据...
  • 本文实现了八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序 首先是算法实现文件Sort.h,代码如下: /* * 实现了八个常用的排序算法:插入排序、冒泡排序...
  • C++篇——C++实现冒泡排序和选择排序算法摘要冒泡法代码运行结果选择排序法代码运行结果 摘要 本文通过C++实现了两类基础且经典的排序算法(冒泡法和选择排序法)。 冒泡法 代码 #include <iostream> using ...
  • 主要为大家详细介绍了C++实现双向冒泡排序算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • #include<iostream> using namespace std; void bubbleSort(int *arr,int len){ int temp; for(int i = 0;i<len-1;i++) for(int j = 0;j<len-i-1;j++){ if (arr[j]>... }
  • 冒泡排序: (无序区,有序区)。从无序区通过交换找出最大元素放到有序区前端。 选择排序思路: /* 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,932
精华内容 14,372
关键字:

c++写冒泡排序

c++ 订阅