一、簡單排序演算法
由於程式比較簡單,所以沒有加什麼注釋。所有的程式都給出了完整的執行**,並在我的vc環境
下執行通過。因為沒有涉及mfc和windows的內容,所以在borland c++的平台上應該也不會有什麼
問題的。在**的後面給出了執行過程示意,希望對理解有幫助。
1.冒泡法:
這是最原始,也是眾所周知的最慢的演算法了。他的名字的由來因為它的工作看來象是冒泡:
#include
void bubblesort(int* pdata,int count)
}while(i<=j);//如果兩邊掃瞄的下標交錯,就停止(完成一次)
//當左邊部分有值(lefti),遞迴右半邊
if(right>i)
run(pdata,i,right);
} void quicksort(int* pdata,int count)
void main()
; quicksort(data,7);
for (int i=0;i<7;i++)
cout<
void bubble2sort(int* pdata,int count)
pdata[w+k] = itemp;
} }
} void main()
; shellsort(data,12);
for (int i=0;i<12;i++)
cout } 呵呵,程式看起來有些頭疼。不過也不是很難,把s==0的塊去掉就輕鬆多了,這裡是避免使用0 步長造成程式異常而寫的**。這個**我認為很值得一看。 這個演算法的得名是因為其發明者的名字d.l.shell。依照參考資料上的說法:「由於複雜的數學原因 避免使用2的冪次步長,它能降低演算法效率。」另外演算法的複雜度為n的1.2次冪。 最基本的 氣泡排序 c code using system namespace bubblesorter j public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for intm 0 m iarrary.le... protected int bubbleup int array 氣泡排序 return array public int selectionsorter int list 選擇排序 int temp list min list min list i list i temp return list ... 不廢話,上 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 排序演算法 陣列 氣泡排序 選則排序 arra...C 排序演算法
C 排序演算法
C 演算法排序