#C语言#二分法查找有序数组
C语言的二分法,想必很多朋友都在初学时是一个难啃的骨头,因为这是必须掌握的最基础的一种算法。在这里我分享一下这个简单的#二分法#查找有序数组
#include<stdio.h>int binary_search(int arr[],int key, int left, int right){ while (left <= right) { int mid = left + (right - left) / 2; if (a[mid]<key) { left = mid + 1; } else if (a[mid]>key) { right = mid - 1; } else { return mid; } } return -1;}int main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int left = 0, right = sizeof(arr) / sizeof(arr[0]) - 1 ;//right是通过sizeof计算真个数组的大小,从而算出最左边的下标 int ret, key; scanf("%d", &key); ret = binary_search(arr,key, left, right); if (-1 == ret) { printf("找不到"); } else { printf("找到了,下标是%d", ret); } system("pause"); return 0;}
还有就是一个有关设置flag的程序,也在这给大家分享一下,也仅仅是实现正负符号的依次转换。
#include<iostream>using namespace std;void calculate()//计算{ int flag = 1; double s = 0,i; for (i = 1; i <= 100; i++){ s = s +flag*(1 / i); flag = -flag; } cout << "1/1-1/2+1/3-1/4...+1/99-1/100=" << s << endl;}int main(){ calculate(); system("pause"); return 0;}//这有些程序是通过c++的一些语法,在当时认为这种方式更简单,但还是希望大家从基础开始一步一步练习
这仅仅是初学C语言遇到一些比较频繁的代码
注:在这里给大家提一个建议,len=sizeof(arr)/sizeof(a[0])在哪里定义就在哪里使用(如在函数中int arr[]为指针大小为4个字节,而定义在主函数中则为数组大小,是因为形参为指针形式)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。