qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-高级专业版🔥

#include <stdio.h> #define Max 30 void myfun(int *p, int n) { int i, left = 0, right = n - 1,

时间2023-04-01 14:03:20 提问来自 江苏省南京市 的网友 分类创作 浏览413
mid; while (left <= right) { mid = (left + right) / 2; if (p[mid] == 0 ) { printf("%d\n", mid); return ; } else if (p[mid] == 1) { //找到一个0,就把它变成1,并向左搜索,看看有没有0 for (i = mid - 1; i >= left; i--) { //向左搜索 if (p[i] == 0 ) { //找到了一个0,就输出并返回 printf("%d\n", i); return ; } else p[i] = 1; // 如果是1,就变成1 } left = mid + 1; //如果一直到了left都是1,那么就要从右边开始找了。 此时right不用动。 left=mid+1. } else right = mid - 1; //如果中间是2,那么right=mid-1, 继续在左半部分找。 } }

点击这里,进行内容创作

创作工场 免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!

上一篇 详细接受游戏客服和游戏GS的关系 下一篇 哪里可以免费进入知网 除了湖北图书馆以外