// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <algorithm>
#include <vector>
#include <time.h>
using namespace std;
#define MAX_ARRAY_SIZE 1000
#define TOP_K 5
void getRand(int* data, int length)
{
for (int i = 0; i < length; i++) {//生成MAX_ARRAY_SIZE个数组元素
data[i] = i;
}
srand(unsigned(time(NULL)));//打乱顺序
random_shuffle(data, data + length);
//print the array
printf("generate the array using rand:\n");
for (int i = 0; i < length; i++) {
printf("%d ", data[i]);
}
printf("\n");
}
int main()
{
int arr[MAX_ARRAY_SIZE] = { 0 };
getRand(arr, MAX_ARRAY_SIZE);
int Data[TOP_K] = { 0 };
int k = TOP_K;
int j = 0;
for (int i = 0; i < MAX_ARRAY_SIZE; i++){
if (j == 0){
if (arr[i] > Data[j]){
Data[j] = arr[i];
j++;
}
}
else{
for (int m = 0; m < k; m++){
if (arr[i] > Data[m]){//顺序比较最大值
for (int n = 0; n < k - m - 1; n++){//挪到位置
Data[k - n - 1] = Data[k - n - 2];
}
Data[m] = arr[i];//插入到空位置
break;
}
}
}
}
for (int i = 0; i < TOP_K; i++){
printf("%d ", Data[i]);
}
printf("\n");
}
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//