1、冒泡排序
2、二分查找
3、插入数
4、二分查找和插入数要有序
#include<stdio.h>
void bublling_sort(int arr[], int sz)
{
int i = 0;
int j = 0;
int tmp = 0;
int m = 0;
for (i = 0; i < sz - 1; i++)
{
for (j = 0; j < sz - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int binary_search(int arr[], int sz, int k)
{
int left = 0;
int right = sz - 1;
while (left <= right)
{
int mid = left + (right - left) / 2;
if (arr[mid] < k)
{
left = mid + 1;
}
else if (arr[mid] > k)
{
right = mid - 1;
}
else
{
return mid;
}
}
return -1;
}
void insert_num(int arr[], int n, int sz)
{
int i = 0;
int index = 0;
for (i = 0; i < sz-1; i++)
{
if ((arr[i] > n) && (n <= arr[i + 1]))
{
index = i;
break;
}
}
for (i = 15; i >= index; i--)
{
arr[i + 1] = arr[i];
}
arr[index] = n;
}
int main()
{
int sz = 0;
int i = 0;
int arr[] = { 1,3,5,8,2,4,6,7,9,15,10,12,11,14,13 };
int k = 0;
int n = 0;
sz = sizeof(arr) / sizeof(arr[0]);
bublling_sort(arr, sz);
printf("排序后的数值:");
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n输入要查找的值:>");
scanf("%d",&k);
int index = binary_search(arr, sz, k);
printf("\n");
if (index == -1)
printf("找不到");
else
printf("查找的索引值%d", index);
printf("\n输入插入的值:>");
scanf("%d", &n);
insert_num(arr, n, sz);
printf("插入的排序是:");
for (i = 0; i <= sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}