博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c算法
阅读量:5809 次
发布时间:2019-06-18

本文共 1552 字,大约阅读时间需要 5 分钟。

斐波那契

void main(){    int a[10]={
1, 1}, i; for (i=2;i<=9;i++) //这里需要注意,for循环虽然《=9, 还有个i++ { a[i] = a[i-2] + a[i-1]; printf("%d, %d\n", a[i-2], i-2);// printf("%d", i); }}
View Code

 

 

冒泡算法

void main(){    int i[7] = {
9, 2, 3, 1, 5, 4, 6}, j, k, a, l; for (j=0;j<=7;j++) { for (k=0;k<=7-j;k++) { if (i[k]>i[k+1]) { a= i[k]; i[k] = i[k+1]; i[k+1] = a; } } } for (l=0;l<=6;l++) { printf("%d", i[l]); }}
View Code

 

 

二分查找

标注知识点:

一个程序在编译运行的时候, 普通变量是存放在栈里面的而static会是的变量存放在data里整个内存主要分为四大区:   CODE(代码), DATA(数据区,变量常量等), STACK(栈), HEAP(程序员定义)

 

二分法就是在一批有序数据中查找某数

思路:

首先, 选择这批数中间位置的一个数与所查找比较, 是在所选前面还是后面

从而缩小范围的一半。

一次类推在缩小一半。

 

代码:

#define M 10void main(){    static int a[M] = {-12, 0, 6, 16, 23, 56, 80, 100, 110, 115};    int n, low, mid, high, found;    low=0;    high=M-1;    found=0;    printf("Input a number to be searched:\n");    do    {        scanf("%d", &n);    }while(n < a[0] || n > a[M-1]);    while(low<=high)    {        mid=(low+high)/2;        if(n==a[mid])        {            found=1;            break;        }/*找到,结束循环*/        else if(n>a[mid])        {            low = mid + 1;        }        else        {            high = mid - 1;        }    }    if (found==1)    {        printf("The index of %d is %d", n, mid);    }    else    {        printf("There is not %d", n);    }}
View Code

 

转载地址:http://orcbx.baihongyu.com/

你可能感兴趣的文章
nginx一致性hash
查看>>
keepalived+lvs
查看>>
正则实例
查看>>
开源 java CMS - FreeCMS2.8 自定义标签 channelPage
查看>>
底部固定宽度 鼠标拉到最后宽度变小怎么解决
查看>>
ubuntu10.10下安装OpenCV2.2.0
查看>>
10.vue router 带参数跳转
查看>>
在腾讯的一点儿感悟
查看>>
PKI之——CA 部署
查看>>
我的友情链接
查看>>
个人开公司的流程,以后用得着(转)
查看>>
自动部署系统
查看>>
DSP网络子系统
查看>>
我的友情链接
查看>>
第一次尝试写IT博客
查看>>
struct字节分配问题
查看>>
Error string types not allowed at android:configChanges in manifest file
查看>>
mysql服务器主从服务器设置
查看>>
文件管理、命令别名和glob
查看>>
趣谈家用计算机维护
查看>>