多种排序法
计算机程序设计中有两个很经典的排序算法,他们分别是冒泡排序法和选择排序法。在编程的时候很多地方都会遇到排序,就像C/C++没有排序函数那样,那么就需要我们自己手动写排序算法。
[注意]
下面的例子都是用C++和Win32控制台程序写的!
冒泡排序法:
#include <iostream> #include <time.h> using namespace std; template <class T> int arraylen(T& array){ return (sizeof(array) / sizeof(array[0])); } int main() { int box[10]; int temp; srand((unsigned)time(NULL)); for(int i = 0; i < arraylen(box); i++){ box[i] = rand() % 100; cout << box[i] << "\t"; } cout << endl; for(int i = 1; i < arraylen(box); i++){ for(int j = 0; j < arraylen(box) - i; j++){ if(box[j] > box[j + 1]){ temp = box[j]; box[j] = box[j + 1]; box[j + 1] = temp; } } } for(int i = 0; i < arraylen(box); i++){ cout << box[i] << "\t"; } cout << endl; system("pause"); return 0; }
选择排序法:
#include <iostream> #include <time.h> using namespace std; template <class T> int arraylen(T& array){ return (sizeof(array) / sizeof(array[0])); } int main() { int box[10]; int temp, index; srand((unsigned)time(NULL)); for(int i = 0; i < arraylen(box); i++){ box[i] = rand() % 100; cout << box[i] << "\t"; } cout << endl; for(int i = 0; i < arraylen(box) - 1; i++){ index = i; for(int j = i + 1; j < arraylen(box); j++){ if(box[j] < box[index]){ index = j; } } if(index != i){ temp = box[i]; box[i] = box[index]; box[index] = temp; } } for(int i = 0; i < arraylen(box); i++){ cout << box[i] << "\t"; } cout << endl; system("pause"); return 0; }
非常不错的文章,过来看看学习,希望博主分享更多好的文章。
That's really thikinng of the highest sort.