微软面试100道之 5 查找最小的k个元素(数组)
2013-09-02 20:27
369 查看
5.查找最小的k个元素(数组)
题目:输入n个整数,输出其中最小的k个。
例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。
#include <iostream>
using namespace std;
int main() {
int a[]={10,6,3,9,15,12,7,5,8,9,45,12,3,2,45,78,1};
int k;
cout<<"输入k"<<endl;
cin>>k;
int b[50];
for(int i=0; i<k; i++) {
b[i] = a[i];
}
for(int l=0;l<k;l++) {//只可惜数组不能被引用
for(int j=0; j<k-1; j++) {
if(b[j]<=b[j+1]) {
int t;
t = b[j];
b[j] = b[j+1];
b[j+1] = t;
}
}
}
for(int m=k; m<(sizeof(a)/sizeof(a[0])); m++) {//有一件非常麻烦的事就是如何获得数组中元素的个数
if(a[m]<b[0]) {
b[0] = a[m];
for(int l=0;l<k;l++) {
for(int j=0; j<k-1; j++) {
if(b[j]<=b[j+1]) {
int t;
t = b[j];
b[j] = b[j+1];
b[j+1] = t;
}//可能用二分法排序会比较好
}
}
}
}
for(int y=0; y<k; y++) {
cout<<b[y]<<" ";
}
}
题目:输入n个整数,输出其中最小的k个。
例如输入1,2,3,4,5,6,7和8这8个数字,则最小的4个数字为1,2,3和4。
#include <iostream>
using namespace std;
int main() {
int a[]={10,6,3,9,15,12,7,5,8,9,45,12,3,2,45,78,1};
int k;
cout<<"输入k"<<endl;
cin>>k;
int b[50];
for(int i=0; i<k; i++) {
b[i] = a[i];
}
for(int l=0;l<k;l++) {//只可惜数组不能被引用
for(int j=0; j<k-1; j++) {
if(b[j]<=b[j+1]) {
int t;
t = b[j];
b[j] = b[j+1];
b[j+1] = t;
}
}
}
for(int m=k; m<(sizeof(a)/sizeof(a[0])); m++) {//有一件非常麻烦的事就是如何获得数组中元素的个数
if(a[m]<b[0]) {
b[0] = a[m];
for(int l=0;l<k;l++) {
for(int j=0; j<k-1; j++) {
if(b[j]<=b[j+1]) {
int t;
t = b[j];
b[j] = b[j+1];
b[j+1] = t;
}//可能用二分法排序会比较好
}
}
}
}
for(int y=0; y<k; y++) {
cout<<b[y]<<" ";
}
}
相关文章推荐
- 微软算法100道题-----查找最小的k个元素
- 交换元素,使两数组之和的差最小 【微软面试100题 第三十二题】
- (微软面试100题)查找最小的K个元素
- 【从零单排之微软面试100题系列】05之查找最小的k个元素
- 微软面试:输出整型数组任意两个元素差的绝对值的最小值
- 5. 微软面试题: 查找最小的k个元素(数组)
- 程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】
- 查找最小的k个元素 【微软面试100题 第五题】
- 微软等数据结构+算法面试100题(46)-- 查找最小的k 个元素
- 微软等数据结构+算法面试100题(40)-- 旋转数组中的最小元素
- 微软面试100题目之5 查找最小的k个元素
- 查找最小的k个元素 【微软面试100题 第五题】
- 旋转数组中的最小元素 【微软面试100题 第六十九题】
- 旋转数组中的最小元素 【微软面试100题 第六十九题】
- 交换元素,使两数组之和的差最小 【微软面试100题 第三十二题】
- 面试100题:5.查找最小的k个元素
- 把数组排成最小的数 【微软面试100题 第六十八题】
- 设计一个最优算法来查找n个元素数组中的最大值和最小值
- 面试题15 - 查找最小的 k 个元素 [数组] / (堆优化 STL O(nlogk) )[STL]
- 面试训练旋转数组的最小元素