基本排序算法及分析(二):冒泡排序
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                基本排序算法及分析(二):冒泡排序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                冒泡排序和改進(jìn)的冒泡排序
?2Bubble_sort.h
?3冒泡排序:?時(shí)間復(fù)雜度為O(N^2)
?4改進(jìn)的冒泡排序:?時(shí)間復(fù)雜度仍為O(N^2)
?5????一般的冒泡排序方法有可能會(huì)在已經(jīng)排好序的情況下繼續(xù)比較,改進(jìn)的冒泡排序
?6????設(shè)置了一個(gè)哨兵flag,如果一次for循環(huán)沒有進(jìn)行交換,則元素已經(jīng)排好序,由哨兵控制退出循環(huán)。
?7-------------------------------------------------------------------------------------------*/
?8#ifndef?BUBBLE_SORT_H
?9#define?BUBBLE_SORT_H
10
11#include?"typedef.h"
12#include?"swap.h"
13
14//冒泡排序
15void?Bubble_sort(T?*a,?int?n)
16{
17????for(int?i=n-1;?i?!=?0;?--i)
18????????for(int?j=0;?j?!=?i;?++j)
19????????????if(a[j+1]?<?a[j])?swap(a[j+1],a[j]);
20}
21
22//改進(jìn)的冒泡排序
23void?Improved_Bubble_sort(T?*a,?int?n)
24{????
25????for(int?i=n-1;?i?!=?0;?--i)
26????{
27????????bool?flag?=?true;
28????????for(int?j=0;?j?!=?i;?++j)?//這一趟遍歷如果沒有交換,則已完成排序
29????????????if(a[j+1]?<?a[j])??{?swap(a[j+1],a[j]);?flag?=?false;?}
30????????if(flag?==?true)?break;
31????}
32}
33
34#endif
 
轉(zhuǎn)載于:https://www.cnblogs.com/liyuxia713/archive/2009/04/22/2540781.html
總結(jié)
以上是生活随笔為你收集整理的基本排序算法及分析(二):冒泡排序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Circle HDU - 6550 (
 - 下一篇: selenium操作cookies实现免