uva10474-----sort的使用

code:

#include <cstdio>
#include<algorithm>
/* 
//主要用sort 进行排序  sort 
这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区
间尾地址的下一地址。也就是说,排序的区间是[a,b)。简单来说,有一个数组int a[100],
要对从a[0]到a[99]的元素进行排序,只要写sort(a,a+100)就行了,默认的排序方式是升序。

第三参数——比较函数。比较函数是一个自己定义的函数,返回值是bool型,它规定了什么
样的关系才是“小于”。想把刚才的整数数组按降序排列,可以先定义一个比较函数cmp

bool cmp(int a,int b) // 这样的话就是降序排列
{
    return a>b;
}
*/
using namespace std; 
#define Max 10000
int main(){
	int n,m,kase=1,s[Max];
        while(scanf("%d %d",&n,&m)==2&&n){
        	  printf("CASE# %d:\n",kase++);
        	  for(int i= 0;i < n;i++)
        	      scanf("%d",&s[i]);
        	  sort(s,s+n);
			  while(m--){
  			      int k;
					  scanf("%d",&k);
					  int p = lower_bound(s,s+n,k)-s; //返回在s-s+n中k能插在哪里的下表,且仍然能按顺序排列 
					  if(s[p] == k) printf("%d found at %d\n",k,p+1);
					  else printf("%d not found\n",k);	
  			  }    
        }
	return 0;
}

  

posted on 2014-12-08 19:16  lzm420241  阅读(97)  评论(0)    收藏  举报

导航