Problem Description
编写下列函数:
(1)void insert_sort(int a[], int n):实现数组从小到大排序;
(2)bool binary_search(int v[], int n, int x):数组v[]升序排列,查找x,有则返回true,否则,返回false 。
测试代码为:
#include <stdio.h>
#include <stdbool.h>void insert_sort(int a[], int n);
bool binary_search(int v[], int n, int x);int main(void)
{
int n, m;
scanf("%d%d", &n, &m);
int a[n];for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}insert_sort(a, n);
bool ans = binary_search(a, n, m);
if (ans)
printf("Found!\n");
else
printf("Not Found!\n");return 0;
}
/* 你的代码将被嵌在这里 */
Input Description
第一行输入两个整数n和m,n>0为数组元素个数,m为待查找的整数。
第二行输入n个整数,为数组元素。
Output Description
如果找到则输出Found!,否则输出Not Found!
Sample Input
10 47
11 34 82 7 64 98 47 18 79 20
Sample Output
Found!
#include <stdio.h>
#include <stdbool.h>
void insert_sort(int a[], int n);
bool binary_search(int v[], int n, int x);
int main(void)
{
int n, m;
scanf("%d%d", &n, &m);
int a[n];
for (int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
insert_sort(a, n);
bool ans = binary_search(a, n, m);
if (ans)
printf("Found!\n");
else
printf("Not Found!\n");
return 0;
}
void insert_sort(int a[], int n)
{
int flag = 0;
for(int j = 1; j < n; j++)
{
if(flag == 1)
return;
flag = 1;
for(int i = 0; i < n - j; i++)
{
if(a[i] > a[i + 1])
{
int c;
c = a[i];
a[i] = a[i + 1];
a[i + 1] = c;
flag = 0;
}
}
}
}
bool binary_search(int v[], int n, int x)
{
for(int i = 0; i < n; i++)
{
if(v[i] == x)
return true;
}
return false;
}