八种排序算法总结之C++版本 五种简单排序算法 一、 冒泡排序 【稳定的】 void BubbleSort( int* a,int Count ) //实现从小到大的最终结果 { int temp; for(int i=1; i
=i; j--) if( a[j] < a[j-1] ) { temp = a[j]; a[j] = a[j-1]; a[j-1] = temp; } } 现在注意,我们给出 O 方法的定义: 若存在一常量 K 和起点 n 0,使当 n >=n 0 时,有 f(n )<=K*g (n ),则 f(n ) = O(g (n ))。(呵呵,不要说没学好数学呀,对于编程数学是非常重要的!!!) 现在我们来看 1/2*(n -1)*n ,当 K=1/2,n 0=1,g (n )=n *n 时,1/2*(n -1)*n <=1/2*n *n =K*g (n )。所以 f(n ) =O(g (n ))=O(n *n )。所以我们程序循环的复杂度为 O(n*n)。 二、 交换排序 【稳定的】 void ExchangeSort( int *a,int Count) { int temp; for(int i=0; i=0 && temp