C語(yǔ)言排序算法之冒泡排序?qū)崿F(xiàn)方法【改進(jìn)版】
本文實(shí)例講述了C語(yǔ)言排序算法之冒泡排序?qū)崿F(xiàn)方法。分享給大家供大家參考,具體如下:
冒泡排序和改進(jìn)的冒泡排序
/*------------------------------------------------------------------------------------------- Bubble_sort.h 冒泡排序: 時(shí)間復(fù)雜度為O(N^2) 改進(jìn)的冒泡排序: 時(shí)間復(fù)雜度仍為O(N^2) 一般的冒泡排序方法有可能會(huì)在已經(jīng)排好序的情況下繼續(xù)比較,改進(jìn)的冒泡排序 設(shè)置了一個(gè)哨兵flag,如果一次for循環(huán)沒(méi)有進(jìn)行交換,則元素已經(jīng)排好序,由哨兵控制退出循環(huán)。 -------------------------------------------------------------------------------------------*/ #ifndef BUBBLE_SORT_H #define BUBBLE_SORT_H #include "typedef.h" #include "swap.h" //冒泡排序 void Bubble_sort(T *a, int n) { for(int i=n-1; i != 0; --i) for(int j=0; j != i; ++j) if(a[j+1] < a[j]) swap(a[j+1],a[j]); } //改進(jìn)的冒泡排序 void Improved_Bubble_sort(T *a, int n) { for(int i=n-1; i != 0; --i) { bool flag = true; for(int j=0; j != i; ++j) //這一趟遍歷如果沒(méi)有交換,則已完成排序 if(a[j+1] < a[j]) { swap(a[j+1],a[j]); flag = false; } if(flag == true) break; } } #endif
希望本文所述對(duì)大家C語(yǔ)言程序設(shè)計(jì)有所幫助。
相關(guān)文章
QT5交叉編譯入門(mén)級(jí)教程(arm64、mips64)
交叉編譯就是在當(dāng)前系統(tǒng)平臺(tái)上,開(kāi)發(fā)編譯運(yùn)行于其它平臺(tái)的程序,比如本文硬件環(huán)境是x86平臺(tái),但是編譯出來(lái)的程序是在arm64架構(gòu)、mips64等架構(gòu)上運(yùn)行,本文給大家分享QT5交叉編譯入門(mén)級(jí)教程(arm64、mips64),感興趣的朋友一起看看吧2023-11-11C/C++標(biāo)準(zhǔn)庫(kù)之轉(zhuǎn)換UTC時(shí)間到local本地時(shí)間詳解
最近遇到一個(gè)問(wèn)題:數(shù)據(jù)庫(kù)中存放的時(shí)間為UTC時(shí)間,但是現(xiàn)在要求都出來(lái)顯示的時(shí)間為本地時(shí)間,所以就用C++實(shí)現(xiàn)了,下面這篇文章主要給大家介紹了關(guān)于C/C++標(biāo)準(zhǔn)庫(kù)之轉(zhuǎn)換UTC時(shí)間到local本地時(shí)間的方法,還有C++中獲取UTC時(shí)間精確到微秒的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2017-11-11基于C++實(shí)現(xiàn)的哈夫曼編碼解碼操作示例
這篇文章主要介紹了基于C++實(shí)現(xiàn)的哈夫曼編碼解碼操作,結(jié)合實(shí)例形式分析了C++實(shí)現(xiàn)的哈夫曼編碼解碼相關(guān)定義與使用技巧,需要的朋友可以參考下2018-04-04c語(yǔ)言之char*和unsigned?char*的區(qū)別及說(shuō)明
這篇文章主要介紹了c語(yǔ)言之char*和unsigned?char*的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08C語(yǔ)言文件操作零基礎(chǔ)新手入門(mén)保姆級(jí)教程
在實(shí)際應(yīng)用中,我們往往需要對(duì)文件進(jìn)行操作,下面這篇文章主要給大家分享了關(guān)于C語(yǔ)言文件操作的零基礎(chǔ)新手入門(mén)保姆級(jí)教程,文中通過(guò)示例代碼以及圖片介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10用c++實(shí)現(xiàn)將文本每個(gè)單詞首字母轉(zhuǎn)換為大寫(xiě)
本篇文章是對(duì)用c++實(shí)現(xiàn)將文本每個(gè)單詞首字母轉(zhuǎn)換為大寫(xiě)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C++11?lambda(匿名函數(shù))表達(dá)式詳細(xì)介紹
lambda 表達(dá)式(lambda expression)是一個(gè)匿名函數(shù),C++11中的lambda表達(dá)式用于定義并創(chuàng)建匿名的函數(shù)對(duì)象,以簡(jiǎn)化編程工作,下面這篇文章主要給大家介紹了關(guān)于C++11?lambda(匿名函數(shù))表達(dá)式的相關(guān)資料,需要的朋友可以參考下2022-07-07