第k大的数
来源:互联网 发布:浙江东方集团 知乎 编辑:程序博客网 时间:2024/04/30 15:53
题目描述要求在N个不重复的整数中,找出第K大的整数 ,其中0<K<N<1000000输入输入第一行为两个正整数N K第二行为N个整数,输入保证这N个整数两两相异,每个整数的范围在-1000000到1000000之间输出输出第K大的整数值#include<string.h>#include<stdio.h>#include <malloc.h>#define N 100int m;int n;void swap(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp;} int Partition(int *arr,int low,int high){ int pivotkey; int k=low+(high-low)/2; if(arr[low]>arr[high]) swap(&arr[low],&arr[high]); if(arr[k]>arr[high]) swap(&arr[k],&arr[high]); if(arr[low]>arr[k]) swap(&arr[low],&arr[k]); pivotkey=arr[low]; arr[0]=pivotkey; while(low<high){ while(low<high && arr[high]>=pivotkey) high--; arr[low]=arr[high]; while(low<high && arr[low]<=pivotkey) low++; arr[high]=arr[low]; } arr[low]=arr[0]; return low;}void QSort(int *arr,int low, int high){ //printf("%d %d \n",low,high); int pivot; int k=n-m+1; if(low<high){ pivot=Partition(arr,low,high); if(k<pivot) QSort(arr,low,pivot-1); if(pivot<k) QSort(arr,pivot+1,high); if(k==pivot){ // printf("%d\n",arr[pivot]); return ; } } // return ;} int arr[1000000];int main(){ while(scanf("%d %d",&n,&m)!=EOF){ //scanf("%d %d",&n,&m); // int *arr=(int *)malloc((n+1)*sizeof(int));// if(NULL==arr){ // exit (1); //} int n1=n,i=1; arr[0]=0; // printf("%d %d",n,num); while(n1--){ scanf("%d",&arr[i++]); } if(n<3){ if(n==1) printf("%d\n",arr[1]); else{ if(arr[1]<arr[2]) swap(&arr[1],&arr[2]); printf("%d\n",arr[m]); } } else QSort(arr,1,n); printf("%d\n",arr[n-m+1]); //free(arr); //swap(&arr[1],&arr[2]); // printf("%d %d",arr[1],arr[2]);//for(int l=1;l<(n+1);l++){ // printf("%d\n",arr[l]);//} } return 0;}
0 0
- 第K大的数
- 第k大的数
- 第k大的数
- 第K大的数
- 第k大的数
- 第K大的数
- 第K大的数
- 第K大的数
- 第K大的数
- 得到第K个大的数
- 找第k大的数
- 求第K大的数~~
- 寻找第K大的数
- 寻找第K大的数
- 寻找第K大的数
- 寻找第K大的数
- 找第K大的数
- 算法--选择第K大的数
- 关键字const
- JAVA用双栈实现队列,纪念我挂掉的第一次腾讯面试题
- Android中的Handler和AsyncTask的区别
- [arr firstObject] 和 arr[0] 的区别
- Android中关联源码遇到的问题
- 第k大的数
- 安装visual studio 2010显示 Microsoft Application Error Reporting安装失败错误
- [POJ 2100] Graveyard Design (Two Pointer)
- OkHttp使用介绍
- Android API中IBinder接口的谷歌翻译
- jy901 ajson树莓派上编译错误
- magento 电子商务平台安装
- OpenJudge 波兰表达式
- [CODE]UIUC同学Jia-Bin Huang收集的计算机视觉代码合集