C語言排序算法之冒泡排序實現(xiàn)方法【改進版】
更新時間:2017年09月25日 09:16:39 作者:liyuxia713
這篇文章主要介紹了C語言排序算法之冒泡排序實現(xiàn)方法,結合具體實例形式分析了C語言實現(xiàn)的基本冒泡排序實現(xiàn)方法及增設flag標志位的改進型算法,需要的朋友可以參考下
本文實例講述了C語言排序算法之冒泡排序實現(xiàn)方法。分享給大家供大家參考,具體如下:
冒泡排序和改進的冒泡排序
/*-------------------------------------------------------------------------------------------
Bubble_sort.h
冒泡排序: 時間復雜度為O(N^2)
改進的冒泡排序: 時間復雜度仍為O(N^2)
一般的冒泡排序方法有可能會在已經排好序的情況下繼續(xù)比較,改進的冒泡排序
設置了一個哨兵flag,如果一次for循環(huán)沒有進行交換,則元素已經排好序,由哨兵控制退出循環(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語言程序設計有所幫助。
相關文章
Linux/Manjaro如何配置Vscode的C/C++編譯環(huán)境
這篇文章主要介紹了Linux/Manjaro配置Vscode的C/C++編譯環(huán)境,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-05-05
VS2019如何創(chuàng)建C++項目的實現(xiàn)示例
這篇文章主要介紹了VS2019如何創(chuàng)建C++項目的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08

