欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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)文章

  • QT5交叉編譯入門(mén)級(jí)教程(arm64、mips64)

    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-11
  • C++日期和時(shí)間編程小結(jié)

    C++日期和時(shí)間編程小結(jié)

    這篇文章主要介紹了C++日期和時(shí)間編程小結(jié)的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Qt實(shí)現(xiàn)解壓帶有密碼的加密文件

    Qt實(shí)現(xiàn)解壓帶有密碼的加密文件

    Quazip是Qt平臺(tái)下面的一個(gè)壓縮解壓縮庫(kù)。本文將利用Quazip實(shí)現(xiàn)解壓帶有密碼的加密文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-02-02
  • C/C++標(biāo)準(zhǔn)庫(kù)之轉(zhuǎn)換UTC時(shí)間到local本地時(shí)間詳解

    C/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)的哈夫曼編碼解碼操作示例

    這篇文章主要介紹了基于C++實(shí)現(xiàn)的哈夫曼編碼解碼操作,結(jié)合實(shí)例形式分析了C++實(shí)現(xiàn)的哈夫曼編碼解碼相關(guān)定義與使用技巧,需要的朋友可以參考下
    2018-04-04
  • c語(yǔ)言之char*和unsigned?char*的區(qū)別及說(shuō)明

    c語(yǔ)言之char*和unsigned?char*的區(qū)別及說(shuō)明

    這篇文章主要介紹了c語(yǔ)言之char*和unsigned?char*的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語(yǔ)言文件操作零基礎(chǔ)新手入門(mén)保姆級(jí)教程

    C語(yǔ)言文件操作零基礎(chǔ)新手入門(mén)保姆級(jí)教程

    在實(shí)際應(yīng)用中,我們往往需要對(duì)文件進(jìn)行操作,下面這篇文章主要給大家分享了關(guān)于C語(yǔ)言文件操作的零基礎(chǔ)新手入門(mén)保姆級(jí)教程,文中通過(guò)示例代碼以及圖片介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10
  • 超詳細(xì)的cmake入門(mén)教程

    超詳細(xì)的cmake入門(mén)教程

    這篇文章主要介紹了超詳細(xì)的cmake入門(mén)教程,需要的朋友可以參考下
    2020-02-02
  • 用c++實(shí)現(xiàn)將文本每個(gè)單詞首字母轉(zhuǎn)換為大寫(xiě)

    用c++實(shí)現(xiàn)將文本每個(gè)單詞首字母轉(zhuǎn)換為大寫(xiě)

    本篇文章是對(duì)用c++實(shí)現(xiàn)將文本每個(gè)單詞首字母轉(zhuǎn)換為大寫(xiě)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++11?lambda(匿名函數(shù))表達(dá)式詳細(xì)介紹

    C++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

最新評(píng)論