本贴用于给正在学习二分查找算法的小伙伴们提供帮助。二分查找在查找之前需要对数组进行排序,在排序之后才可进行查找。本篇帖子使用了冒泡排序对数组进行排序排序后进行二分查找。
在使用二分查找查找一个数列中的元素所在位置,随机给定一个数组先通过冒泡排序进行排序。并将排序后的结果输出在控制台(供学习阶段参考)通过键盘录入来获取查询的目标值。调用二分查找输出查询结果
/**
* author: xhbtt
* Query the subscripts of elements in an array
* using bubble sort and binary search
**/
#include<stdio.h>
//声明所有使用的函数
void bubbleSort(int arry[], int n);
void swap(int *p0, int *p1);
int BinySerch(int arry[], int x, int length);
int main()
{
//定义一个一维数组
int arry[] = { 7, 9, 10, 3, 2, 14, 1 };
//定义一个变量用来存储数组的长度
int len = (int)sizeof(arry) / sizeof(*arry);
//调用冒泡排序函数将数组按升序排列
bubbleSort(arry, len);
//遍历排序后的数组并输出
for (int i = 0; i < len; i++){
if (i == 0){
printf("arry:{");
}else if(i != len - 1){
printf("%d, ", arry[i]);
}else if(i == len - 1){
printf("%d}\n",arry[i]);
}
}
//通过键盘录入