代码说明:
运行程序先输入一个数,为数组的长度,代码会随机生成一个数组,然后分贝用选择排序和冒泡排序实现从小到大的排序.
实验结果:
代码:
#include <iostream>
#include <cstdlib>
#include <ctime>
int main()
{
int blag = 1;//标志位
int n = 0;
do{
std::cout << "请输入数组大小:" << std::endl;
std::cin >> n;
if(n <= 0)
{
std::cout << "你输入的数组大小不合法,请重新输入:" << std::endl;
}else{
blag = 0;
}
}while(blag);
int *h_a = (int*)malloc(sizeof(int) * n);
int *h_b = (int*)malloc(sizeof(int) * n);
srand(time(NULL));
for(int i = 0; i < n; ++i)
{
h_a[i] = rand() % 11;
h_b[i] = rand() % 11;
printf("h_a[%d] = %d\t",i,h_a[i]);
}
printf("\n");
for(int i = 0; i < n; ++i)
{
printf("h_b[%d] = %d\t",i,h_b[i]);
}
printf("\n");
//选择排序算法,从小到大
int temp = 0;
for(int i = 0; i < n; ++i)
{
for(int j = i+1; j < n; ++j)
{
if(h_a[i] > h_a[j])
{
temp = h_a[i];
h_a[i] = h_a[j];
h_a[j] = temp;
}
}
}
//冒泡排序算法,从小到大
for(int i = 0; i < n; ++i)
{
for(int j = 0; j < n - i - 1; ++j)
{
if(h_b[j] > h_b[j + 1])
{
temp = h_b[j];
h_b[j] = h_b[j + 1];
h_b[j + 1] = temp;
}
}
}
for(int i = 0; i < n; ++i)
{
printf("h_a[%d] = %d\t",i,h_a[i]);
}
printf("\n");
for(int i = 0; i < n; ++i)
{
printf("h_b[%d] = %d\t",i,h_b[i]);
}
printf("\n");
free(h_a);
free(h_b);
printf("运行结束\n");
return 0;
}