假定一组随机数,然后快速找到第num位置的数
#include<iostream> #include<ctime> using namespace std; #define number 10 #define num 7 int main() { srand((unsigned int)time(NULL)); int arr[number]; int flag=0; //生成随机数组 for (int i = 0; i < number; i++) { //生成1~10随机数 arr[i]=rand()%number+1; } //显示生成的随机数组 for (int i = 0; i < number; i++) { cout<<arr[i]<<"\t"; flag++; if ((flag%10) == 0) { cout<<endl; } } //桶排序 int temp[number] = {0}; for (int i = 0; i < number; i++) { temp[arr[i]]++; } int sum = 0; for (int i = 1; i <= number; i++) { sum += temp[i]; //找到第num位置的数 if(sum >= num) { cout<<i<<endl; return 0; } } return 0; }
原文:https://www.cnblogs.com/hyby/p/13508698.html