程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 冒泡排序,冒泡排序算法

冒泡排序,冒泡排序算法

編輯:C++入門知識

冒泡排序,冒泡排序算法


//============================================================================
// Name        : BubbleSort.cpp
// Author      : fffff
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
using namespace std;
/*
 * 改進版的冒泡排序
 */
void bubbleSort(int data[],int len){
    /*
     * 定義標記flag來判定在此輪循環中是否
     * 發生過交換,如果沒有則說明此輪已經
     * 將數據排好,不需要再繼續進行交換
     * 提前結束就可以提高效率
     */
    bool flag ;
    int temp;
    for(int i=len-1;i>0;i--){
        flag = false;
        for(int j=0;j<i;j++){
            if(data[j]>data[j+1]){
                temp = data[j+1];
                data[j+1] = data[j];
                data[j] = temp;
                flag = true;
            }
        }
        if(flag==false)
            break;
    }
}
void print(int data[],int len){
    for(int i = 0;i<len;i++){
        cout<<data[i]<<" ";
    }
    cout<<endl;
}
int main() {
    int data[] = {4,2,6,8,3,1,9,5,7,0,22,12,45,33,4,23,13,16,21,20};
    bubbleSort(data,sizeof(data)/sizeof(data[0]));
    print(data,sizeof(data)/sizeof(data[0]));
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved