遍歷資料,比較相鄰資料 大小 ,依次交換相鄰資料
手上17上撲克牌 從最左邊(或最右邊)相鄰撲克牌比較大小後交換位置(第一張和第二張比,最大的放最右邊。第二張和第三張比,最大的放最右邊。依此次序比完17張牌。那麼第17張為最大,將剩下的16張依上方法,在比一次。依次比剩下的15張,14,13等等等)(優化是 當比較一輪剩餘的牌的時候(17,16,15等等等)若沒有大小置換,即表示早已排好序,無需排剩下的牌)
#includeusing namespace std;
void bubblesort(int str,int len)
}if(count==0) break;
cout<
17張牌,找出最小的放入最前,接著找出剩餘的牌中最小的值放入剩餘牌的最前面。依次迴圈
#include using namespace std;
void select_sort(int array,int length);
void insert_sort(int *a, int length)
a[i+1] = key; }}
int _tmain(int argc, _tchar* ar**)
return 0;
}
按照牌數多少,進行排序 ,手上10張牌 抽出間隔為5的兩張牌來比較 進行排序交換。 在抽出間隔為2的五張牌來比較,進行排序 交換 。在抽出間隔為1的10張牌進行排序。
void shellsort(int array, int length) //希爾排序函式
array[k + step] = temp; //把小的值往前插入}}
} }}
int main(void) //主程式
cout << endl; //換行
shellsort(array, n); // 呼叫bubblesort函式 進行比較
cout << "由小到大的順序排列後:" << endl;
for (int i = 0; i < n; i++)
cout << endl << endl; //換行
system("pause"); //除錯時,黑視窗不會閃退,一直保持
return 0;
}
C C 常見函式
由於計算機中採用有限位的二進位制編碼,因此浮點數再計算機中的儲存並不總是精確的。例如在經過大量計算後,乙個浮點型的數3.14在計算機中就可能儲存成3.140000001也可能是3.139999999。這種情況下對我們的比較帶來極大的困擾,因為c c 中的 符號是完全相同才能判定是true,所以需要自...
C C 常見指標錯誤
1 記憶體分配未成功,卻使用了它。程式設計新手常犯這種錯誤,因為他們沒有意識到記憶體分配會不成功。常用解決辦法是,在使用記憶體之前檢查指標是否為null。如果指標p是函式的引數,那麼在函式的入口處用assert p null 進行檢查。如果是用malloc或new來申請記憶體,應該用if p nul...
C C 常見名詞對比
巨集通常被應用於執行簡單的運算。巨集的優點 1 巨集比函式在程式的規模和速度方面更勝一籌。巨集是插入到程式中直接執行的,而函式還要建立棧幀和銷毀棧幀,這些工作所耗費的時間可能比函式內部的指令的執行所耗費的時間還要多。2 巨集是型別無關的。函式的引數必須宣告為特定的型別,所以函式只能在型別合適的表示式...