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

C語言排序算法之冒泡排序?qū)崿F(xiàn)方法【改進版】

 更新時間:2017年09月25日 09:16:39   作者:liyuxia713  
這篇文章主要介紹了C語言排序算法之冒泡排序?qū)崿F(xiàn)方法,結(jié)合具體實例形式分析了C語言實現(xiàn)的基本冒泡排序?qū)崿F(xiàn)方法及增設flag標志位的改進型算法,需要的朋友可以參考下

本文實例講述了C語言排序算法之冒泡排序?qū)崿F(xiàn)方法。分享給大家供大家參考,具體如下:

冒泡排序和改進的冒泡排序

/*-------------------------------------------------------------------------------------------
Bubble_sort.h
冒泡排序: 時間復雜度為O(N^2)
改進的冒泡排序: 時間復雜度仍為O(N^2)
  一般的冒泡排序方法有可能會在已經(jīng)排好序的情況下繼續(xù)比較,改進的冒泡排序
  設置了一個哨兵flag,如果一次for循環(huá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]);
}
//改進的冒泡排序
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) //這一趟遍歷如果沒有交換,則已完成排序
      if(a[j+1] < a[j]) { swap(a[j+1],a[j]); flag = false; }
    if(flag == true) break;
  }
}
#endif

希望本文所述對大家C語言程序設計有所幫助。

相關(guān)文章

  • QT5交叉編譯入門級教程(arm64、mips64)

    QT5交叉編譯入門級教程(arm64、mips64)

    交叉編譯就是在當前系統(tǒng)平臺上,開發(fā)編譯運行于其它平臺的程序,比如本文硬件環(huán)境是x86平臺,但是編譯出來的程序是在arm64架構(gòu)、mips64等架構(gòu)上運行,本文給大家分享QT5交叉編譯入門級教程(arm64、mips64),感興趣的朋友一起看看吧
    2023-11-11
  • C++日期和時間編程小結(jié)

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

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

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

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

    C/C++標準庫之轉(zhuǎn)換UTC時間到local本地時間詳解

    最近遇到一個問題:數(shù)據(jù)庫中存放的時間為UTC時間,但是現(xiàn)在要求都出來顯示的時間為本地時間,所以就用C++實現(xiàn)了,下面這篇文章主要給大家介紹了關(guān)于C/C++標準庫之轉(zhuǎn)換UTC時間到local本地時間的方法,還有C++中獲取UTC時間精確到微秒的實現(xiàn)代碼,需要的朋友可以參考下。
    2017-11-11
  • 基于C++實現(xiàn)的哈夫曼編碼解碼操作示例

    基于C++實現(xiàn)的哈夫曼編碼解碼操作示例

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

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

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

    C語言文件操作零基礎新手入門保姆級教程

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

    超詳細的cmake入門教程

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

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

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

    C++11?lambda(匿名函數(shù))表達式詳細介紹

    lambda 表達式(lambda expression)是一個匿名函數(shù),C++11中的lambda表達式用于定義并創(chuàng)建匿名的函數(shù)對象,以簡化編程工作,下面這篇文章主要給大家介紹了關(guān)于C++11?lambda(匿名函數(shù))表達式的相關(guān)資料,需要的朋友可以參考下
    2022-07-07

最新評論