先表態一下, 我不是學資工的, 因為我從小就在摸這些些東西 所以我還頗能夠了解為什麼有那麼多資工系的人會反彈 ==== 我是分隔線, 以下是重點 === 其實補充一點有許多人沒有講到的重點 有人說你會寫字, 但並不代表你會寫詩 這個其實還蠻中肯的, 因為資工有教優化 以下兩個都是做同樣的效果, 都是將數字順序依序排好 但是後者個效率遠比前者大, 這就是所謂演算法帶來的優化 這是資工一生中最追求的東西 // ===============前置準備動作================ // 產生大量的亂數 int a[60000]; for (int i=0, i<60000, i++) { a[i]=rand()%60000; } // ============版本1-俗稱SelectionSort=============== void SelectionSort(int a[], int array_size) { int i; for (i = 0; i < array_size - 1; ++i) { int j, min, temp; min = i; for (j = i+1; j < array_size; ++j) { if (a[j] < a[min]) min = j; } temp = a[i]; a[i] = a[min]; a[min] = temp; } } // 使用方法: SelectionSort(a, 60000); // ============版本2-俗稱HeapSort=============== void makeheap ( int x[ ], int n ) { int i, val, s, f ; for ( i = 1 ; i < n ; i++ ) { val = x[i] ; s = i ; f = ( s - 1 ) / 2 ; while ( s > 0 && x[f] < val ) { x[s] = x[f] ; s = f ; f = ( s - 1 ) / 2 ; } x[s] = val ; } } void heapsort ( int x[ ], int n ) { int i, s, f, ivalue ; for ( i = n - 1 ; i > 0 ; i