一维数组的定义与引用

 一、一维数组的定义
1、一维数组的定义方式为
类型说明符  数组名[常量表达式];
例如:
int a[10 ] ;
它表示定义了 个整型数组,数组名为 a, 此数组有 10 个元素。
说明:
(1) 数组名的命名规则和变量名相同,遵循标识符命名规则。
(2) 在定义数组时,需要指定数组中元素的个数,方括号中的常量表达式用来表示元素的个数,即数组长度。例如,指定a[10 ], 表示 数组有 10 个元素。注意,下标是从0开始的,这 10 个是: a[0 ] a[1 ] ,a[2 ] ,a[3],a[4],a[5],a[6],a[7],a[8 ] ,a[9 ] 。请特别 注意,按上面的定义,不存在数组元素 a[10]
(3) 常量表达式中可以包括常量和符号常量,不能包含变量。也就是说, 语言不允 许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的
int n;
s c anf("%d", &n);
int a [ n ] ;

 2、
(1).类型说明符 
    整型 
       int,short,long ,long long 
    浮点 
    字符  //基本数据类型 
    
(2).数组名 
    代表着 数据集合 (内存空间的一个名字) 
    数据类型角度 
    1. a代表整个数组类型 
    2. a代表一个值 --数组首元素的地址 
    
(3).[]  //表示此时定义的是一个 数组 
(4).常量表达式 
    表示数组的长度 --- 变量的个数 
eg:

int array[5]; //定义一个数组,这个数组放了5个 int型变量 

数组本身也是一种数据类型 

int a = 10; //a int型 

int a[10]; //a所代表的类型 是 
           // 
int[10] a; //a所代表的类型 int[10] 
           //a数组名 标识符 
           //a ---把名字去掉 ,剩下的就是名字对应的数据类型 
           
int a[10]; //数组在内存空间上的特点 

//数组的给值 
//初始化 
//赋值 
int a[10] = {1,2,3,4,5,6,7,8,9,10}; //{} //表示初始化 --初始化器  
                                    //全部初始化 

一、插入排序
1.1直接插入
把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列

步骤:

1.从第一个元素开始,该元素可以认为已经被排序
2.取下一个元素tem,从已排序的元素序列从后往前扫描
3.如果该元素大于tem,则将该元素移到下一位
4.重复步骤3,直到找到已排序元素中小于等于tem的元素
5.tem插入到该元素的后面,如果已排序所有元素都大于tem,则将tem插入到下标为0的位置
6.重复步骤2~5

思路:
  在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。按照此法对所有元素进行插入,直到整个序列有序。

但我们并不能确定待排元素中究竟哪一部分是有序的,所以我们一开始只能认为第一个元素是有序的,依次将其后面的元素插入到这个有序序列中来,直到整个序列有序为止。 

二、选择排序

思路:
每次从待排序列中选出一个最小值,然后放在序列的起始位置,直到全部待排数据排完即可。
实际上,我们可以一趟选出两个值,一个最大值一个最小值,然后将其放在序列开头和末尾,这样可以使选择排序的效率快一倍

三、冒泡排序

思路:
左边大于右边交换一趟排下来最大的在右边

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值