#include <stdio.h>
//冒泡排序声明
void maoPao(int arr[],int len);
int main(int argc, const char * argv[])
{
int arr1[] = {123,232,314,465,576,687,978,389,190,223,235};
int len = sizeof(arr1) / sizeof(arr1[0]);
//调用冒泡函数
maoPao(arr1, len);
//找出687在这个数组中的下标
int flag = 687;
int min = 0;
int max = len - 1;
int mid = len / 2;
while (flag != arr1[mid])
{
if (flag >= arr1[mid])
{
//说明687在这个数组的右边
min = mid + 1;
}
else
{
//这时687在这个数组的左边
max = mid - 1;
}
mid = (min + max) / 2;
}
printf("687在这个数组中的下标是%d\n",mid);
return 0;
}
/**
* 采用冒泡排序将数组从小大进行排序
*
* @param arr arr[]
* @param len len
*/
void maoPao(int arr[],int len)
{
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len - 1 -i; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
|
|