在旋转之后的已排序数组中查找一个数字
来源:互联网 发布:南风知我意番外 编辑:程序博客网 时间:2024/05/21 08:03
#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int search(int arr[], int len, int k){int left = 0;int right = len - 1;while(left <= right){int mid = left + ((right - left)>>1);if(arr[mid] == k){return mid;}if(arr[left] <= arr[mid])//左端有序{if(arr[left]<=k && k<arr[mid])//k在有序端{right = mid - 1;}else//k在无序端{left = mid + 1;}}else//右端有序{if(k>arr[mid] && k<=arr[right])//k在有序端{left = mid + 1;}else//k在无序端{right = mid - 1;}}}return -1;}int main(){int arr1[] = {2, 3, 4, 5, 6, 7, 8, 9, 0, 1};int arr2[] = {8, 9, 0, 1, 2, 3, 4, 5, 6, 7};int len = sizeof(arr1)/sizeof(arr1[0]);int tmp1 = search(arr1, len, 1);int tmp2 = search(arr2, len, 7);printf("%d\n", tmp1);printf("%d\n", tmp2);return 0;}
阅读全文
0 1
- 在旋转之后的已排序数组中查找一个数字
- 在旋转之后的已排序数组中查找一个数字
- 在旋转之后的已排序数组中查找一个数字
- 在已排序的数组中查找
- 在已排序的数组中,查找和为给定值得两个数字
- 在旋转后的排序数组中查找
- 在旋转后的排序数组中进行查找
- 在一个有序的旋转数组中,查找给定值
- 在一个旋转有序数组中,查找最小的数
- 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数
- 在有序递增数组中查找一个缺少的数字
- 在一个由升序序列旋转之后的序列中查找最小元素
- 旋转数组的最小数字(查找和排序)
- 查找和排序-——旋转数组的最小数字
- 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好等于输入的那个数字
- 输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。
- 输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字
- 阿里编码规范(二)OOP规约,集合处理,并发处理
- Mac安装android studio后卡在building gradle project info的解决方法
- 常用C/C++头文件
- 【Spring5】使用 Spring Webflux 开发 Reactive 应用
- javaMybatis存进时间戳问题
- 在旋转之后的已排序数组中查找一个数字
- 构造回文(算法题)
- 利用XML文件存储数据,并自制XMLUtils进行解析
- 鬼地方干豆腐干豆腐
- JavaScript学习笔记(四)
- Android5.0新控件
- Rxjava Rxandroid基本入门
- android开发之-startActivityForResult的应用
- 网络设备驱动基本原理和框架