c++冒泡排序示例分享
冒泡排序(Bubble Sort),是一種計(jì)算機(jī)科學(xué)領(lǐng)域的較簡單的排序算法。它重復(fù)地走訪過要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過來。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端,故名。由于冒泡排序簡潔的特點(diǎn),它通常被用來對于計(jì)算機(jī)程序設(shè)計(jì)入門的學(xué)生介紹算法的概念。
#include <stdio.h>
int swap(int *a, int *b)
{
*a = *a + *b;
*b = *a - *b;
*a = *a - *b;
return 0;
}
int mao_pao(int *a, int n)
{
int i, j, flag;
for(i = n - 1, flag = 1; i > 0 && flag ; --i)
{
flag = 0;
for(j = 0; j < i; ++j)
{
if(a[j] > a[j + 1])
{
flag = 1;
swap(a + j, a + j + 1);
}
}
}
return 0;
}
int main(int argc, const char *argv[])
{
int i;
int a[] = {7,8,6,2,9,4,3,1,5,10};
mao_pao(a, 10);
for(i = 0; i < 10; ++i)
{
printf("%4d", a[i]);
}
printf("\n");
return 0;
}
相關(guān)文章
C++定制刪除器與特殊類設(shè)計(jì)(餓漢和懶漢)
這篇文章主要給大家介紹了關(guān)于C++定制刪除器與特殊類設(shè)計(jì)的相關(guān)資料,使用餓漢模式和懶漢模式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
C++歸并法+快速排序?qū)崿F(xiàn)鏈表排序的方法
這篇文章主要介紹了C++歸并法+快速排序?qū)崿F(xiàn)鏈表排序的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
基于C語言實(shí)現(xiàn)學(xué)生成績管理系統(tǒng)
這篇文章主要介紹了基于C語言實(shí)現(xiàn)學(xué)生成績管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C++右值引用與移動(dòng)構(gòu)造函數(shù)基礎(chǔ)與應(yīng)用詳解
左值和右值都是針對表達(dá)式,左值是指表達(dá)式結(jié)束后依然存在的持久對象,右值是指表達(dá)式結(jié)束時(shí)就不再存在的臨時(shí)對象,下面這篇文章主要給大家介紹了關(guān)于C++11右值引用和移動(dòng)語義的相關(guān)資料,需要的朋友可以參考下2023-02-02
Qt實(shí)現(xiàn)簡單動(dòng)態(tài)時(shí)鐘
這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)簡單動(dòng)態(tài)時(shí)鐘,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07

