A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wy911011 中级黑马   /  2015-7-26 00:37  /  350 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

选择排序:
void selectSort(int arr[],int len){
    int temp;
    //选择排序
    for (int i=0; i<len-1; i++) {
        for (int j=i+1; j<len; j++) {
            //调换i、j的值
            if (arr>arr[j]) {
                temp=arr;
                arr=arr[j];
                arr[j]=temp;
            }
        }
    }
}

int main(int argc, const char * argv[]){
    int a[10]={31,213,23,67,98,234,26,98,90,129};
    //调用selectSort函数
    selectSort(a, 10);
    //遍历
    for (int i=0; i<10; i++) {
        printf("%d\t",a);
    }
    return 0;
}

折半查找
int searchItem(int arr[],int len,int key){
    int low=0,high=len-1,mid;   //定义变量

    while (low<=high) {                 //循环
        mid=(low+high)/2;                //计算mid的值
        if (key>arr[mid]) {             //判断
            low=mid+1;
        }else if (key<arr[mid]){
            high=mid-1;
        }else{
        
            return mid;
        
        }
        
    }
    return -1;

}
int main(int argc, const char * argv[]) {
    int a[]={12,23,34,45,56,67,78,85,97,109};
    int loc= searchItem(a, 10, 45);
    printf("%d",loc);
    return 0;
}

二维数组:可以看做是一个特殊的一维数组,这个一维数组的每个元素又是一个一维数组
注意事项:
1)数组名不能和变量名同名
2)数组的长度也意识常量表达式
3)数组长度可以使用宏定义
二维数组的初始化
二维数组中,第一维可以省略,第二维不可以
(1)定义同时初始化
        1)int  a[2][3]={{12,22,34},{1,2,3}};
        2)   连续赋值  int a[2][3]={1,2,3,4,5,6};
        3)   可以省略第一维   int  a[][3]={1,2,3,4,5,6};
(2)先定义后初始化
        

二维数组遍历
int main(int argc, const char * argv[]) {
    int a[3][4]={1,23,4,5,67,8,9,967,23,4,55,32};
    for (int i=0; i<3; i++) {
        for (int j=0; j<4; j++) {
            printf("%d\t",a[j]);
        }
        printf("\n");
    }
    return 0;
}

数组元素作为函数的参数传递的是值,变量
数组名作为函数的参数,他是一个常量,保存的是数组的首地址

字符串是位于双引号中的字符序列
在内存中以“\0”结束,所以字节比实际多一个

字符数组初始化和遍历
用字符数组保存字符串:
1)
    char arr[4]={"asd"};
    for (int i=0; i<4; i++) {
        printf("%c\t",arr);
    }

2)
    for (int i=0; i<4; i++) {
        printf("%c\t",arr);
    }

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马