冒泡排序+二分查找+lower_bound
#include <iostream>
#include <algorithm>
using namespace std;
int a[9] = {3,1,5,8,9,4,5,3,0};
void output(int *a)
{
for(int* i = a;i<a+9;i++)
{
cout<<*i<<" ";
}
cout<<endl;
}
int findnum(int num)
{
int l = 0,r = 9;
int mid = (l+r)/2;
while(r>=l)
{
mid = (l+r)/2;
if(num==mid) return mid;
else if(num>mid) l = mid+1;
else if(num<mid) r = mid-1;
}
return -1;
}
int main()
{
for(int i = 0;i<9;i++)
{
for(int j = 0;j<9-1-i;j++)
{
if(a[j]>a[j+1])
swap(a[j],a[j+1]);
}
}
output(a);
int addr;
addr = findnum(8);
cout<<addr;
addr = lower_bound(a,a+9,8)-a;
cout<<addr;
return 0;
}