二分查找和字符串基本知识总结

二分查找法:

二分查找法只适合有序数组

int halfSearch(int array[],int length, int key)

{

     最小值的索引,最大值的索引, 中间值的索引

    int min, max, mid;

    min = 0;

    max = length - 1;

    mid = (min + max) / 2;

    while (key != array[mid]) {

        if (key > array[mid]) {

            如果要找的值大于中间值, min要变

            min = mid + 1;

        }else if (key < array[mid])

        {

            如果要找的值小于中间值,max要变

            max = mid - 1;

        }

        

        如果最小值都超过了最大值,就证明没有找到

        if (min > max) {

            return -1;

        }

        每次min或者max变化之后,要重新计算mid的值

         mid = (min + max) / 2;

    }

    循环执行完毕,代表找到了

    return mid;

}


二维数组

元素类型 数组名[元素个数];

     元素类型: 说明将来数组中存放元素的类型

     元素个数: 说明将来数组中能存放多少个元素

     

     元素类型 数组名[行数][列数];

     元素类型 数组名[有多少个一维数组][每一个一维数组的元素个数];

     二维数组本质依然是一个一维数组, 只不过他的每一个元素又是一个一维数组而已

int ages[2][3] =

    {

        {1, 3, 5},

        {1, 3, 5}

    };

 二维数组初始化方式

    在定义的同时进行初始化

    int a[2][3] = {{1, 3, 5}, {2, 4, 6}};

    

    也是部分初始化

    int c[2][3] = {{1, 2}, {3}};

    int ages[3] = {1};

    

   二维数组可以省略行数,会自动根据初始化的值计算出有多少个一维数组

    int d[][3] = {1, 3, 5, 2, 4 ,6, 7};   

    注意:二维数组不能省略列数,必须明确的告诉二维数组中每一个一维数组可以存放多少个元素

    int e[2][]= {{1, 3, 5}, {2, 4, 6}};

    

    要给二维数组进行一次性的赋值,只能在定义二维数组的时候

    int f[2][3];

    f[0] = {1, 3, 5};


字符串:

字符串用数组保存, 字符串是由字符组成

    char str[] = "jyk";

    printf(str);

    字符串的初始化

    char str[] = "jyk"; // L + N + J + \0

    \0ascii码值是 0

    \0是字符串结束的标志

    char str2[] = {'j', 'y', 'k', '\0'};

    如果数组元素个数大于初始化的字符,没有初始化的元素的值默认是0

    \0ascii码值是 0, 所以也是一个字符串

    char str3[5] = {'j', 'y', 'k'};

    

    注意:这个不是字符串,因为没有\0

    char str4[3] =  {'j', 'y', 'k'};

    静态初始化, 会更具后面初始化的元素来确定数组的长度

    char str5[] =  {'j', 'y', 'k'};


    %s用于输出字符串









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值