1亿个数选前100最大数
算法思想
1.选择一亿数的前100数前100个数排序
2.后面的数字通过插入排序
#include<iostream> using namespace std; void buddlesort(int array[],int n) { bool exchange=true; int count=n; while(exchange){ exchange=false; for(int i=0;i<count;i++) { if(array[i]>array[i+1]) { int temp=array[i]; array[i]=array[i+1]; array[i+1]=temp; exchange=true; } } count--; if(count<n-100) { break; } } } void insertsort(int array[], int n) { buddlesort(array,100); for(int i=100;i<n;i++) { int temp=array[i]; int pos=100; for(int j=100;j>0;j--) { if(temp<array[j]) { pos=j; break; } } for(int k=0;k<pos-1;k++) { array[k]=array[k+1]; } array[pos-1]=temp; } } int main() { int *array=new int[100000000]; for(int i=0;i<100000000;i++) { array[i]=100000000-i; } insertsort(array, 100000000); for(int i=0;i<100;i++) { cout<<array[i]<<endl; } delete array; }