/*
利用函数调用形式,传递一维数组名进行函数调用
(1)设计冒泡排序函数,在主函数中调用。
(2)设计选择排序函数,在主函数中调用。
(3)设计逆序存放函数,在主函数中调用。
*/
#include <iostream>
using namespace std;
void select_sort(int array[ ],int n); //选择排序
void bubble_sort(int array[ ],int n); //冒泡排序
void reverse_storage(int array[ ], int n);//逆序存储
int main()
{
int a[10],i;
cout<<"enter the originl array:"<<endl;
for(i=0;i<10;i++) cin>>a[i]; //输入10个无序数
cout<<endl;
select_sort(a,10); //选择排序函数调用,数组名作实参
cout<<"after the select sort,the sorted array:"<<endl;
for(i=0;i<10;i++) cout<<a[i]<<" "; //输出10个已排好序的数
cout<<"\n\nenter the originl array again:"<<endl;
for(i=0;i<10;i++) cin>>a[i]; //重新输入10个无序数
bubble_sort(a,10);
cout<<"after the bubble sort,the sorted array:"<<endl;
for(i=0;i<10;i++) cout<<a[i]<<" "; //输出10个已排好序的数
reverse_storage(a,10);
cout<<"\n\nafter reverse storage,the array:"<<endl;
for(i=0;i<10;i++) cout<<a[i]<<" "; //输出逆序存储后的数组内容
cout<<endl;
return 0;
}
void select_sort(int array[ ],int n) //形参array是数组名,选择排序
{int i,j,k,t;
for(i=0;i<n-1;i++)
{ k=i;
for(j=i+1;j<n;j++)
if(array[j]<array[k]) k=j;
t=array[k]; array[k]=array[i]; array[i]=t;
}
}
void bubble_sort(int array[],int n) //形参array是数组名,冒泡排序
{ int i,j,t;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
if(array[j]>array[j+1])
{
t=array[j];
array[j]=array[j+1];
array[j+1]=t;
}
}
}
void reverse_storage(int array[ ], int n)//逆序存储
{
int i,t;
for(i=0;i<=n/2;i++)
{
t=array[i];
array[i]=array[n-1-i];
array[n-1-i]=t;
}
}
排序函数调用--传递数组名