排序演算法 氣泡排序的首尾改進

2021-08-27 09:28:22 字數 571 閱讀 9474

在排序演算法中,氣泡排序是乙個很經典的演算法,最初的氣泡排序一直要執行n-1次,但是其中有些事不必要的操作,例 如,當沒有兩個資料發生交換時,就可以結束執行。

本文介紹的一種方法是對上述條件的改進,即不僅對尾資料進行條件判斷,同時還對頭資料進行條件判斷,當頭資料不發生交換時需要完成一些改進,下面給出實現的源**:

#include #include using namespace std;

void exchange(int& a,int& b)

void bubble_sort(int data,int n)

}numpairs=k;

if(first<1)

first=1;

}

} int main(int argc, char *argv)

; bubble_sort(a,10);

for(int i=0;i!=10;i++)

cout

return exit_success;

}

排序演算法 氣泡排序(改進)

假如我們運氣好,用了1輪就已經將整個序列排序好了,整個數列已然是有序的了。可是我們的排序演算法仍然 兢兢業業 地繼續執行第2輪 第3輪 直至n 1輪,這就很沒必要。也就是說如果序列已經有序,每一輪排序還是會繼續比較相鄰的元素,這就相當於做了一些沒用的操作。這種情況下,如果我們能判斷出數列已經有序,並...

改進的氣泡排序演算法

氣泡排序演算法,是最基本的排序演算法,它屬於交換排序。設想被排序的陣列r 1.n 垂直豎立,將每個資料元素看作有重量的氣泡,根據輕氣泡不能在重氣泡之下的原則,從下往上掃瞄陣列r,凡掃瞄到違反本原則的輕氣泡,就使其向上 漂浮 交換位置 如此反覆進行,直至最後任何兩個氣泡都是輕者在上,重者在下為止。若記...

改進的氣泡排序演算法

氣泡排序演算法,是最基本的排序演算法,它屬於交換排序。設想被排序的陣列r 1.n 垂直豎立,將每個資料元素看作有重量的氣泡,根據輕氣泡不能在重氣泡之下的原則,從下往上掃瞄陣列r,凡掃瞄到違反本原則的輕氣泡,就使其向上 漂浮 交換位置 如此反覆進行,直至最後任何兩個氣泡都是輕者在上,重者在下為止。若記...