数组的一些的应用

来源:互联网 发布:eos utility mac安装 编辑:程序博客网 时间:2024/06/05 19:34

数组的三个算法:
1;冒泡排序法

 两个for循环,一个是循环次数,一个是排序交换位置

 int a[5]={1,4,5,7,2}; for(int i=0;i<5;i++){    //循环次数for(int j=1;j<5;j++){   //排序比较if(a[j]<a[j-1]){a[j]=a[j]+a[j-1];a[j-1]=a[j]-a[j-1];  //交换位置a[j]=a[j]-a[j-1];}} } for(int i=0;i<5;i++){printf("%d",a[i]);  //依次打印 }

2:快速查找最小数,最大数的

#include<stdio.h>void main(){    int a[5]={2,6,7,1,0};    int min=a[0];    int i; for( i=1;i<5;i++){    if(a[i]<min){        min=a[i];    } }   printf("%d",min);   getchar();}

一维数组的定义方式

类型 变量名[大小]={};

扩展到二维数组到多维数组

内存中的描述:有N个大小数据类型为一样的数据连续存储

初始化

赋初值

取值关键:下标取值

二维数组

定义格式 int[1][2]={};  第一个1是行数  2是列数

行数从0开始数  ,列数也从0开始;

一维数组和二维数组联系

二维数组里面的每一个元素又是一个数组

2是数组个数  3是元素个数

a[0][0]=1  a[0][1]=2  a[0][2]=3

二维数组初始化特殊地方 以一维数组的方式进行初始化 如果没有赋值,采取和一维数组相同的数据类型默认形式。

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

赋初值第二种方式 int[2][3]={1,2,3,4,5,6}

错误命名int a[][]={};

可以这样命名 int a[][3]={{1,2,3},{4,5,6},{7,8,9}};

总结就是行数可以填也可不填 ,列数一定要填,

结合一维数组的初始化 int a[]={0};


也有边界问题,超过范围则会奔溃

单个数据的赋值定义:定位

最大数据的是当前定义的数据的n-1, m-1;
 


计算矩阵对角线上的元素和

#include<stdio.h>void main(){    int i,j,sum=0;    int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};        for(i=0;i<3;i++){            for(j=0;j<4;j++){                  if(i==j){                     sum+=a[i][j];                   }              }           }    printf("%d",sum);    getchar();}

//找出二维数组中的最小值

#include<stdio.h>void main(){    int i,j;    int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};    int min=a[0][0];    for(i=0;i<3;i++){        for(j=0;j<4;j++){            if(a[i][j]<min){                min=a[i][j];             }         }     }      printf("%d",min);    getchar();}

前提是数组的排序是从小到大排序

3:二分查找(可以不掌握,需要了解)(通过下标取值,取的最小值和最大值,最小下标和最大下标的中间值,还有一个自己想要查找的值)

int Search(参数a,sizeof(a)/sizeof(int),key){                    //程序最后要返回一个值

  中间下标mid 自己想要查找的值key

  判断a[mid]与key值的大小

  如果相等,那就返回a[mid]

  如果key>a[mid]  最小下标start加1   mid=start+1

  如果key<a[mid]  最小下标end减1       mid=end-1

}

void main(){      //程序最后不要返回值,因为void是空类型   

    int a[5]={0,3,5,6,8}

    Search(a,sizeof(a)/sizeof(int),key )     //传递数组和数组长度还有自己想要查找的值
}

具体的函数例子我试着写了,还没调试对就先不发,我还没怎么搞清楚这个东西
































0 0