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

来源:互联网 发布:windows android忘仙 编辑:程序博客网 时间:2024/06/16 05:58

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

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

#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} };
重点注意数组定义的时候行和列之间的关系。

0 0