C语言——利用二分法求数组中特定元素的索引,并在函数中引入了冒泡排序,可以求无序数组中的特定元素的索引

#include <stdio.h>

#include <stdlib.h>

int erfenfa(int *p, int len, int target)

{

int left = 0;

int right = len - 1;

int i;

int j;

int tmp;

for (i = 0; i < len; i++)

{

for (j = 0; j < len-1-i; j++)

{

if (p[j] > p[j + 1])

{

tmp = p[j];

p[j] = p[j + 1];

p[j + 1] = tmp;

}

}

}

while (left <= right)

{

int mid = (left + right) / 2;

if (p[mid] == target)

{

return mid;

}

else if (p[mid] < target)

{

left = mid + 1;

}

else if (p[mid] > target)

{

right = mid - 1;

}

}

return left;

}

int main()

{

int len;

int target;

int k;

scanf_s("%d", &len);

scanf_s("%d", &target);

int* p = (int*)malloc(sizeof(int) * len);

if (p == NULL)

{

return 1;

}

else

{

for (k = 0; k < len; k++)

{

scanf_s("%d", p + k);

}

int index = erfenfa(p, len, target);

printf("%d", index);

free(p);

}

return 0;

}

结果

数组中有四个元素,找到元素5的索引,输入数组中的元素排列没有顺序。

相关推荐
ChoSeitaku21 小时前
NO.14数据结构红黑树|树高|转化4阶B树|插入操作|删除操作
数据结构·b树
T1an-121 小时前
力扣70.爬楼梯
算法·leetcode·职场和发展
T1an-121 小时前
力扣169.多数元素
数据结构·算法·leetcode
一念&1 天前
每日一个C语言知识:C 数据类型
c语言·开发语言
小秋学嵌入式-不读研版1 天前
C49-函数指针(通过指针调用函数)
c语言·笔记
violet-lz1 天前
数据结构:七大线性数据结构从结构体定义到函数实现的的区别
数据结构
明天会有多晴朗1 天前
C语言入门教程(第1讲):最通俗的C语言常见概念详解与实战讲解
c语言·开发语言·c++
迎風吹頭髮1 天前
UNIX下C语言编程与实践40-UNIX 全局跳转:setjmp 与 longjmp 函数的使用与注意事项
java·c语言·unix
_dindong1 天前
动规:回文串问题
笔记·学习·算法·leetcode·动态规划·力扣
wangwangmoon_light1 天前
0.0 编码基础模板
java·数据结构·算法