国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++常見排序算法——冒泡排序算法

這篇具有很好參考價值的文章主要介紹了C++常見排序算法——冒泡排序算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

首先說一下冒泡排序的基本算法思想:

它重復地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果順序(如從大到小、首字母從Z到A)錯誤就把他們交換過來。

這個算法的名字由來是因為越小的元素會經(jīng)由交換慢慢“浮”到數(shù)列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。

以從小到大排序為例:a[5]={3,5,4,1,0};

  1. 先將3和5進行比較,已經(jīng)是我們需要的正序,不需要交換位置;
  2. 再將5和4進行比較,不是正序,相互交換順序,序列變?yōu)閧3,4,5,1,0}。
  3. 再將5和1進行比較,不是正序,相互交換順序,序列變?yōu)閧3,4,1,5,0}。
  4. 再將5和0進行比較,不是正序,相互交換順序,序列變?yōu)閧3,4,1,0,5}。

至此,第1輪冒泡就已經(jīng)完成了,最大值5到了序列的最后面。

由于5的位置已經(jīng)排好序,所以第2輪,5不再參與排序,將{3,4,1,0}置為有序序列即可。

假設數(shù)組元素個數(shù)為n,從上面第1輪的比較來看,我們可以得出如下結論:

  1. 我們將冒泡排序的輪數(shù)設為 i ,每完成1輪冒泡排序,就會增加一個元素處于有序狀態(tài),所以在 (n-1) 輪排序結束后,就會有 n-1 個元素處于有序狀態(tài),而剩下的最后一個元素,自然是最?。ù螅┲?,不用再進行排序,所以,冒泡排序比較的輪數(shù)為 (n-1)?。
  2. 我們將每輪需要比較的次數(shù)設為 j ,第1輪( i 值為0)需要比較的次數(shù)為4,從?{3,4,1,0} 中不難看出,第2輪( i 值為1)需要比較的次數(shù)為3次,說明每輪比較的次數(shù) j 與冒泡的輪數(shù)? i? 值有關,且 j = n-i-1。

確定好上面兩條結論以后,我們開始用代碼實現(xiàn)冒泡排序算法:

#include <iostream>
using namespace std;
//對a[]進行正序(從小到大)排序
void bubblesort(int *a,int len)	//形參a取到實參a傳遞過來的數(shù)組首地址
                                //然后解引用,取到數(shù)組的值 
{
	for (int i=0;i<len-1;i++)	//i控制排序的輪數(shù) 
	{
		for (int j=0;j<len-i-1;j++)	//j控制每輪需要比較的次數(shù) 
		{
			if(a[j+1]<a[j])	//不滿足正序要求,交換順序 
			{
				int temp=a[j];
				a[j]=a[j+1];
				a[j+1]=temp;
			}
		}
	}	
}

int main()
{
	int a[10]={2,6,3,8,5,1,0,7,9,4};
	int len = sizeof(a)/sizeof(int);	//	計算數(shù)組元素個數(shù) 
	bubblesort(a,len);	//a為數(shù)組a[10]首地址,作為實參傳遞給形參 
	for(int i=0;i<len;i++)
	{
		cout<<a[i]<<" ";
	}
	return 0;
}

得到正序排列的值:?0 1 2 3 4 5 6 7 8 9。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-400036.html

到了這里,關于C++常見排序算法——冒泡排序算法的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • C++實現(xiàn)冒泡排序算法(含源碼)

    C++實現(xiàn)冒泡排序算法(含源碼) 冒泡排序是一種簡單的排序算法,它通過不斷交換相鄰的元素,將較大的元素逐步\\\"浮\\\"到待排序列的尾部,從而實現(xiàn)排序。下面是C++的冒泡排序實現(xiàn)代碼: 該函數(shù)接受一個整型數(shù)組和數(shù)組長度作為參數(shù),在每次遍歷中,它比較相鄰的兩個元素,將

    2024年02月07日
    瀏覽(23)
  • 穩(wěn)定的排序算法:直接插入排序和冒泡排序 (c++實現(xiàn))

    1.直接插入排序: 插入排序:就是把數(shù)組分為左右兩個序列,保持左邊序列中所有元素是有序的,(當左邊序列只有第一個元素時,本身就是有序的,)每次往后移一個,將這個元素保存起來,跟左邊的元素進行比較,直到找到第一個小于它的元素后停下,此時的位置是這個

    2024年02月10日
    瀏覽(21)
  • c++排序算法——冒泡排序(不會的一定要看,超級詳細)

    c++排序算法——冒泡排序(不會的一定要看,超級詳細)

    今天,我們來學習一種排序算法—— 冒泡排序 。 首先,先問三個問題: 想象一下,如果字典不是按照字母順序排列,查找一個單詞,你得查到什么時候?這就是為什么人們引入了分類的概念,因為其 極大地幫助我們快速搜索物品 。 或者說,排序是一種常用的整理信息的方

    2024年02月16日
    瀏覽(21)
  • Cartographer算法2D激光雷達與IMU融合建圖
                    
            
首先先說一下我的硬件設備:

    Cartographer算法2D激光雷達與IMU融合建圖 首先先說一下我的硬件設備:

    ?上一篇文章講了cartographer算法手持雷達建圖的參數(shù)調試,這篇進一步講如何融合2D雷達與IMU采用cartographer算法進行slam建圖。 cartographer算法手持二維激光雷達建圖(不使用里程計及IMU) https://blog.csdn.net/wangchuchua/article/details/127268037?spm=1001.2014.3001.5502 思嵐s1激光雷達、Tobotics

    2023年04月10日
    瀏覽(196)
  • 【算法篇C++實現(xiàn)】常見排序算法

    【算法篇C++實現(xiàn)】常見排序算法

    算法精煉 每趟從待排序的記錄中選出最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。 簡單排序處理流程 從待排序序列中,找到最小的元素; 如果最小元素不是待排序序列的第一個元素,將其和第一個元素互換; 從余下的 N - 1 個元素中

    2024年02月13日
    瀏覽(18)
  • 數(shù)據(jù)結構——C語言實現(xiàn)常見排序(插入排序、希爾排序、選擇排序、堆排序、冒泡排序)

    數(shù)據(jù)結構——C語言實現(xiàn)常見排序(插入排序、希爾排序、選擇排序、堆排序、冒泡排序)

    現(xiàn)在是北京時間2023年6月23日13點19分,度過了一個非常愉快的端午節(jié)。由于剛從學校回家,一下子伙食強度直升了個兩三個檔次。這也導致我的腸胃不堪重負,我也準備等會去健身房消耗一下盈余的熱量?;氐郊遗惆闋敔斪呷松詈蟮碾A段才是我這個暑假最重要的事情。自從

    2024年02月10日
    瀏覽(89)
  • 【數(shù)據(jù)結構常見七大排序(三)上】—交換排序篇【冒泡排序】And【快速排序】

    【數(shù)據(jù)結構常見七大排序(三)上】—交換排序篇【冒泡排序】And【快速排序】

    目錄 前言 1.冒泡排序 1.1冒泡排序動圖 1.2冒泡排序源代碼 1.3冒泡排序的特性總結 2.快速排序?? 2.1hoare版本實現(xiàn)思想 排序前 排序中 排序后 2.2hoare版本快排源代碼 2.3分析先走 情況1?? 情況2?? 交換類排序兩個常見的排序算法【冒泡排序】、【快速排序】 交換排序基本思想:

    2024年02月16日
    瀏覽(22)
  • 【數(shù)據(jù)結構與算法】排序算法:冒泡排序,冒泡排序優(yōu)化,選擇排序、選擇排序優(yōu)化

    【數(shù)據(jù)結構與算法】排序算法:冒泡排序,冒泡排序優(yōu)化,選擇排序、選擇排序優(yōu)化

    目錄 一、冒泡排序 1、冒泡排序思想 2、冒泡排序算法的性能分析 代碼實現(xiàn): 二、選擇排序 1、選擇排序思想 2、選擇排序算法的性能分析? 代碼實現(xiàn): 1、冒泡排序思想 冒泡排序的基本思想是通過相鄰元素之間的比較和交換來逐步將最大(或最小)的元素移到右邊(或左邊

    2024年01月19日
    瀏覽(26)
  • 排序算法:冒泡排序

    冒泡排序是入門級的算法,但也有一些有趣的玩法。通常來說,冒泡排序有三種寫法: 一邊比較一邊向后兩兩交換,將最大值 / 最小值冒泡到最后一位; 經(jīng)過優(yōu)化的寫法:使用一個變量記錄當前輪次的比較是否發(fā)生過交換,如果沒有發(fā)生交換表示已經(jīng)有序,不再繼續(xù)排序;

    2024年02月11日
    瀏覽(19)
  • 排序算法之詳解冒泡排序

    排序算法之詳解冒泡排序

    冒泡排序顧名思義,就是像冒泡一樣,泡泡在水里慢慢升上來,由小變大。 雖然冒泡排序和冒泡并不完全一樣,但卻可以幫助我們理解冒泡排序。 一組無序的數(shù)組,要求我們從小到大排列 我們可以先將最大的元素放在數(shù)組末尾 再將第二大的數(shù)放在數(shù)組的倒數(shù)第二個位置 再

    2023年04月25日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包