第7章数组 第1趟比较后,剩5个数未排好序;两两比较5次 第2趟比较后,剩4个数未排好序;两两比较4次 第3趟比较后,剩3个数未排好序;两两比较3次 第4趟比较后,剩2个数未排好序;两两比较2次 第5趟比较后,全部排好序;两两比较1次 算法结论:对于n个数的排序,需进行n-1趟比 较,第j趟比较需进行nj次两两比较 程序流程图:(用两层嵌套循环实现) 输入n个数给叫1—an 1 to n-1 for i-l to n-1 可计假 ai与ai+11 输出a11-a101
第7章 数组 • 第1趟比较后,剩5个数未排好序;两两比较5次 • 第2趟比较后,剩4个数未排好序;两两比较4次 • 第3趟比较后,剩3个数未排好序;两两比较3次 • 第4趟比较后,剩2个数未排好序;两两比较2次 • 第5趟比较后,全部排好序;两两比较1次 • 算法结论:对于n个数的排序,需进行n-1趟比 较,第j趟比较需进行n-j次两两比较。 • 程序流程图:(用两层嵌套循环实现)
第7章数组 程序:设需排序的数有10个,定义数组大小为 11,使用a[1]~a[10]存放10个数,a[0]不用。 man inta[11];/*用可1]~a[10],a[0]不用*/ · int l,t;/*动作循环变量,t作临变* printf(" input 10 numbers: n E for(i=1; i<11; i++) · scanf("%",&a[j);/*输入10个整数*/ printf( \n") ·for(j=1j=9)/*第j趟比较* for(i=1;i<=10i+)/*第j趟中两两比 较10次*
第7章 数组 • 程序:设需排序的数有10个,定义数组大小为 11,使用a[1]~a[10]存放10个数,a[0]不用。 • main() • { • int a[11]; /* 用a[1]~a[10], a[0]不用*/ • int i,j,t;/* i,j作循环变量,t作临变*/ • printf("input 10 numbers:\n"); • for(i=1;i<11;i++) • scanf("%d",&a[i]);/* 输入10个整数 */ • printf("\n"); • for(j=1;j<=9;j++) /* 第j趟比较 */ • for(i=1;i<=10-j; i++) /* 第j趟中两两比 • 较10-j次 */ •
第7章数组 if(a[i]>a[i+1])/米交换大小* t= alil a[i]=a[i+1] a[i+1]=t; printf( the sorted numbers: \n") for(i=1;i<11;i++) printf( %d",ali]) 自己下去认真看书上(p87-89)例题大家一定 要看懂,上机练。 7、2二维数组 二维数组:数组元素是双下标变量的数组
第7章 数组 • if (a[i] > a[i+1]) /* 交换大小 */ • { t = a[i]; • a[i] = a[i+1]; • a[i+1] = t; • } • printf("the sorted numbers:\n"); • for(i=1;i<11;i++) • printf("%d",a[i]); • } • 自己下去认真看书上(p87-89)例题大家一定 要看懂,上机练。 • 7、2 二维数组 • 二维数组:数组元素是双下标变量的数组
第7章数组 维数组的数组元素可以看作是排列为行列的 形式(矩阵)。二维数组也用统一的数组名来 标识,第一个下标表示行,第二个下标表示列 下标从0开始。 7、2、1二维数组的定义 类型说明符数组名1[行常量表达式1][列常量表达式1],数组名 2[行常量表达式2][列常量表达式2] 例、 float a[3][4];a为3×4(3行4列)的数组 f1oab[5][10];b为5×10(5行10列)的数组 二维数组的理解: 二维数组a3][4]理解为 有三个元素ao]、a[1、a[2],每一个元素是 个包含4个元素的数组
第7章 数组 • 二维数组的数组元素可以看作是排列为行列的 形式(矩阵)。二维数组也用统一的数组名来 标识,第一个下标表示行,第二个下标表示列。 下标从0开始。 • 7、2、1 二维数组的定义 • 类型说明符 数组名1[行常量表达式1][列常量表达式1], 数组名 2[行常量表达式2][列常量表达式2]……; • 例、float a[3][4]; a为3×4(3行4列)的数组 • float b[5][10];b为5×10(5行10列)的数组 • 二维数组的理解: • 二维数组a[3][4]理解为: • 有三个元素a[0]、a[1]、a[2],每一个元素是一 个包含4个元素的数组
第7章数组 aa aa 000102 03 a1o a1 ao a a2-aa218a2 22a23 二维数组的元素在内存中的存放顺序: 按行存放,即:先顺序存放第一行的元素,再 存放第二行的元素。(最右边的下标变化最快, 第一维的下标变化最慢)。 a a a 03 a a 13 20a a 21 22a 23
第7章 数组 • 二维数组的元素在内存中的存放顺序: • 按行存放,即:先顺序存放第一行的元素,再 存放第二行的元素。(最右边的下标变化最快, 第一维的下标变化最慢)