C语言快速查找与二分查找0804

本文介绍了C语言中的快速查找方法——二分查找,强调了数组需有序排列这一查找条件,并探讨了如何在实践中应用方法调用。同时,文章详细讲解了一维和二维数组的定义、初始化、赋值和取值操作,特别是二维数组的特殊初始化方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在任何时候遇到任何事请,都不能阻挡我前进的脚步。

今天上午讲了快速排序的方法,与冒泡排序有异取同工之秒,但是其中还是也有很多的区别,快速排序的是主要是用用来查找数据,不能用来排序。

#include <stdio.h>
void main(){
    int a[5] = {12,3,23,45,56};
    int min = 0;
    for (int i = 0; i < 5; i++)
    {
        if (a[i]<a[min])
        {
            min = i;
        }
    }
    printf("%d",a[min]);
    getchar();
}

**二分查找查找的条件是数组中的元素必须会顺序排列,方法就是取中间的数然后,跟之前的猜数字有相同点,主要的是要学会怎么应用方法的调用,记得,不同的方法之间会有返回值的。
代码仅供参考**。

#include <stdio.h>

int seach(int array[], int len, int key){
    int start = 0;
    int end = len - 1;
    while (start<=end){
        int mid = (start + end) / 2;
        if (array[mid]==key){
            return mid;
        }
        else
        {
             if (array[mid] >key){
                 end = mid - 1;
            }
            else {
                start = mid + 1;
            }
        }


    }return -1;

}
void main(){
    //二分查找,数组中必须要从小到大排序 
    /*int a[5];
    for (int i = 1; i <= 5; i++)
    {
        printf("请输入你的数组,空格分开");
        snanf_s("%d", &i);
        a[i - 1] = i;
    }*/
    int a[5] = {4,5,6,7,8};
    //scach(a, 5, 3);
    printf("请输入你要查找的数");
    int key;
    scanf_s("%d",&key);
    getchar();
    printf("%d",seach(a, 5, key));
    getchar();

}

重点学习数组
类型 变量名[大小]={};一位数组的定义方式。
描述:
1、内存当中的描述:有大小=N个数据为类型的这样的数据连续存储
2、数组的初始化
(1)int a[10] = {1,2,3,4,5,…..};
(2)int a[] = {1,2,3,4……};
3、赋值操作
0-n,a[0-n] = xx;
4、取值的关键(下标取值)

二维数组

1、定义格式
(1)int a[1][2] = {}; 1.行数 2.列数
2.一维数组和二维数组中间联系
Int a [2][3] = {{1,2,3},{4,5,6}};

这个是二维数组初始化特殊的地方以一维数组的方式进行初始化,如果没有赋值采取和一位数组一样的方式,进行默认值的显示
3.int a[][] = {};错误的
4.int a[][3] = { { 1, 2, 3 }, { 2, 3, 4 },{4,5,6} };
重点注意数组定义的时候行和列之间的关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值