/*
输入n个整数,输出其中最小的k个。
详细描述:
接口说明
原型:
bool GetMinK(unsignedint uiInputNum, int *pInputArray, unsignedint uiK, int * pOutputArray);
*/
void main(){
unsigned int n,m;
int inputArray[MAX]={0},outputArray[MAX]={0};
while(1){
cout<<"输入数据个数:n= ";
cin>>n;
for(int i=0;i<n;i++){
cin>>inputArray[i];
}
cout<<"输出数据个数:n= ";
cin>>m;
getMin_K(n,inputArray,m,outputArray);
for(int i=0;i<m;i++){
cout<<outputArray[i]<<" ";
}
cout<<endl;
}
}
bool getMin_K(unsigned int inputnum,int* inputArray,unsigned int output_k,int* outputArray){
//冒泡算法排序
int i,j,temp;
for(i=1;i<inputnum;i++){
for(j=inputnum-1;j>=i;j--){
if(inputArray[j]<inputArray[j-1]){
temp=inputArray[j];
inputArray[j]=inputArray[j-1];
inputArray[j-1]=temp;
}
}
}
//提取k个最小数据
for(i=0;i<output_k;i++){
outputArray[i]=inputArray[i];
}
return true;
}