华为oj: 输入n个整数,输出其中最小的k个
2015-08-27 15:41
519 查看
述 | 输入n个整数,输出其中最小的k个。详细描述:接口说明原型:bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);输入参数: unsignedint uiInputNum //输入整数个数int * pInputArray //输入整数数组unsignedint uiK //需输出uiK个整数输出参数(指针指向的内存区域保证有效): int * pOutputArray //最小的uiK个整数返回值: false 异常失败 true 输出成功 |
---|---|
知识点 | 循环,数组 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入说明 1 输入两个整数 2 输入一个整数数组 |
输出 | 输出一个整数数组 |
样例输入 | 5 2 1 3 5 7 2 |
样例输出 | 1 2 |
下面提供了两种方法:
方法一:用数字,指针的方式,需要自己写排序函数,本题采用希尔排序。
方法二:利用vector可以动态创建,利用algorithm头文件里面的sort函数排序
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
void shellsort(int arr[],int N)
{
int i,j,d;
int temp;
for(d=N/2;d>=1;d/=2)
{
for(i=d;i<N;i++)
{
temp=arr[i];
for(j=i-d;j>=0&&temp<arr[j];j-=d)
arr[j+d]=arr[j];
arr[j+d]=temp;
}
}
}
bool GetMinK0(unsigned int Num, int * pInputArray, unsigned int K, int * pOutputArray)
{
int i;
if (K>Num||K==0||Num==0) return false;
shellsort(pInputArray,Num);
for(i=0;i<K;i++)
{
pOutputArray[i]=pInputArray[i];
}
return true;
}
vector<int> GetMinK1(vector<int> in,int Num,vector<int> out,int K)
{
int i;
sort(in.begin(),in.end());
for(i=0;i<K;i++)
out[i]=in[i];
return out;
}
int main()
{
unsigned int k;
unsigned int len;
int i;
cin>>len>>k;
int *in =new int[len];
int *out=new int[k];
for(i=0;i<len;i++)
cin>>in[i];
GetMinK0(len,in,k,out);
for(i=0;i<k-1;i++)
cout<<out[i]<<' ';
cout<<out[k-1];
delete[] in;
delete[] out;
vector<int> in1(len);
vector<int> out1(k);
for(i=0;i<len;i++)
cin>>in1[i];
out1= GetMinK1(in1,len,out1,k);
for(i=0;i<k-1;i++)
cout<<out[i]<<' ';
cout<<out[k-1];
}
相关文章推荐
- Linux Shell - 如何使用sort与uniq命令删除重复的文本行
- Redis sort 排序命令详解
- 批处理命令教学之字符串排序(sort)
- C++ 关于STL中sort()对struct排序的方法
- Js中sort()方法的用法
- 如何写JS数组sort的比较函数
- javascript中sort()的用法实例分析
- js模拟实现Array的sort方法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- js表数据排序 sort table data
- javascript 数组排序函数sort和reverse使用介绍
- JavaScript Table排序 2.0 (更新)
- js中数组(Array)的排序(sort)注意事项说明
- Javascript数组的排序 sort()方法和reverse()方法
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:选择排序 Selection Sort
- php-redis中的sort排序函数总结
- php通过sort()函数给数组排序的方法
- Lua的table库函数insert、remove、concat、sort详细介绍
- JS中使用sort结合localeCompare实现中文排序实例