多种排序法
计算机程序设计中有两个很经典的排序算法,他们分别是冒泡排序法和选择排序法。在编程的时候很多地方都会遇到排序,就像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.