C語(yǔ)言排序算法之冒泡排序?qū)崿F(xiàn)方法【改進(jìn)版】
更新時(shí)間:2017年09月25日 09:16:39 作者:liyuxia713
這篇文章主要介紹了C語(yǔ)言排序算法之冒泡排序?qū)崿F(xiàn)方法,結(jié)合具體實(shí)例形式分析了C語(yǔ)言實(shí)現(xiàn)的基本冒泡排序?qū)崿F(xiàn)方法及增設(shè)flag標(biāo)志位的改進(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)文章
C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單彈跳球游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單彈跳球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
Linux/Manjaro如何配置Vscode的C/C++編譯環(huán)境
這篇文章主要介紹了Linux/Manjaro配置Vscode的C/C++編譯環(huán)境,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
基于C中一個(gè)行壓縮圖的簡(jiǎn)單實(shí)現(xiàn)代碼
首先簡(jiǎn)單說(shuō)一下什么是行壓縮圖,其實(shí)嚴(yán)格意義上應(yīng)該是行壓縮矩陣2013-05-05
VS2019如何創(chuàng)建C++項(xiàng)目的實(shí)現(xiàn)示例
這篇文章主要介紹了VS2019如何創(chuàng)建C++項(xiàng)目的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Qt+QWidget實(shí)現(xiàn)簡(jiǎn)約美觀的加載動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了Qt如何結(jié)合QWidget實(shí)現(xiàn)簡(jiǎn)約美觀的加載動(dòng)畫,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02

