常用算法之冒泡排序(C++版)0 Z% s0 M& e! P8 a
其实我认为冒泡是最没有必要说的一个算法,如果连冒泡都不知道的话,我觉得就不能谓之学过算法。这个应该是属于特别简单的一个算法,很基本,我记得当时我们是讲算法的时候,讲的第一个就是这个冒泡排序。我也就不多说其他了,我这里写上纯粹是为了一个完整性。
$ |1 e6 `" C1 a- o/ p6 B 效率O(n*n),稳定排序。 t8 X2 P9 @( ~3 v% r+ W
1 #include
6 w( \" n& h3 W, s, R8 F) H 2 using namespace std;
& R3 Y4 K5 B! q- i5 V 38 p/ j: ^0 r) E J7 q* O
4 int BubbleSort(int *nData,int len)$ {7 {. d8 ~3 H$ d
5 {( t# N* G& _, F' g
6 bool isOk = false;) B9 e! {7 }. F; a
7 for(int i = 0;i
5 c$ X. @3 C- `. ?; f$ Z 8 isOk = true;
5 `3 K9 e3 l+ [$ u8 W 9 for(int j = len - 1;j > i;--j){
- l, y B& z5 H. i* w8 C 10 if(nData[j]* J" f+ Z; x2 [7 H" }0 }5 p
11 int temp = nData[j];
% J% {& a$ m0 q* I" \/ Z$ G 12 nData[j] = nData[j-1];1 V8 p& {' T) `' C1 x' }& v+ L$ Z
13 nData[j-1] = temp;
& j, i( n4 F' l6 f 14 isOk = false;9 K: C3 T9 k. \3 r6 K
15 }, @- T7 E* r3 i9 e
16 }$ c; B+ b" b9 t$ }2 H* g* m9 S
17 }" T4 I7 Z) I9 j0 |
18 }
: E1 j3 w" r r) F7 i# } 19; I, C* `4 i ]$ T# Y& n
20 int main()
( b4 l& K1 D: R. O$ H3 V) t 21 {) }. M. N% A4 {0 ^! A
22 int pData[10]={1,5,9,3,4,7,8,2,6,10};
0 \ W' a* ^" [
9 o a- Q" _6 z+ d 23 for(int i = 0;i |