第8章数组
第 8 章 数 组
本章知识点8.1一维数组的定义、引用与初始化数组名+一维下标”--表示数据8.2一维数组的应用8.3二维数组“数组名+二维下标”--表示数据8.4数组与函数
本章知识点 8.1 一维数组的定义、引用与初始化 “数组名+一维下标”-表示数据 8.2 一维数组的应用 8.3 二维数组 “数组名+二维下标”-表示数据 8.4 数组与函数
8.2一维数组的应用8.2.3排序问题一P152【例8.7】选择法排序:用选择法将10个整数从小到大排序输出。排序算法很多-最基础的是选择法排序。三个数排序的算法:1intx,y,z,t;I/ 要求3个数从小到大2scanf("%d %d %d",&x,&y,&z)3if (x>y)(t=x; x=y;y =t;)从3个数找最小值5if (x>z)存入x6( t = z; z = x; x = t;)从2个数找最小if (y>z)值存入y8(t=y; y=z; z=t})9printf("%d,%d,%d\n",x,y,z);3/115
【例8.7】选择法排序:用选择法将10个整数从小到大排序输出。 排序算法很多-最基础的是选择法排序。 3/115 8.2.3 排序问题—P152 8.2 一维数组的应用 三个数排序的算法: ① int x,y,z,t; // 要求3个数从小到大 ② scanf("%d %d %d",&x,&y,&z); ③ if (x>y) ④ { t = x; x = y; y = t;} ⑤ if (x>z) ⑥ { t = z; z = x; x = t;} ⑦ if (y>z) ⑧ { t = y; y = z; z = t ;} ⑨ printf("%d,%d,%d\n",x,y,z); 从3个数找最小值 存入x 从2个数找最小 值 存入 y
3个数的排序过程:(1)通过2 次比较,最小数与第1个数交换一第一趟选择排序的结果:3个数中最小数存入第1个数。(2)通过1次比较,将剩余的2个数中的小数与第3个数交换一第二趟选择排序结果:3个数中次小数存入第2个数。(3)放在第3个数的位置上第3个数就是最大值,结论:3个数的排序一一是2次找最小值的过程
3个数的排序过程: (1) 通过 2 次比较,最小数与第 1 个数交换—第一趟选 择排序的结果:3个数中最小数存入第 1 个数。 (2) 通过1次比较,将剩余的2个数中的小数与第 3 个数交 换—第二趟选择排序结果: 3个数中次小数存入第2个数。 (3) 第3个数就是最大值,放在第3个数的位置上。 结论:3个数的排序-是 2 次找最小值的过程
【例8.7】选择排序法■编程:对n个数排序(按由小到大顺序)。选择法思路:每次选择未排好序的数中最小的放在前面,n个数的排序就是n-1次找最小值的过程选择排序过程:n 个数的排序就是 n-1 次找最小值的过程,即:(1)首先通过 n-1 次比较,从 n个数中找出最小数,将它与第1个数交换一第一趟选择排序一一一结果:最小数被存入第1个数。(2)再通过n-2次比较,从剩余的n-1个数中找出次小次小数数,将它与第2个数交换一第二趟选择排序一一一结果:存入第 2 个数。(3)重复上述过程,共经过n-1趟排序后,排序结束。5/115
【例8.7】选择排序法 ◼编程:对n个数排序(按由小到大顺序)。 ◼选择法思路:每次选择未排好序的数中最小的放在前面,n 个数的排序就是n-1次找最小值的过程。 5/115 选择排序过程: n 个数的排序就是 n-1 次找最小值的过程,即: (1) 首先通过 n-1 次比较,从 n 个数中找出最小数, 将 它与第1个数交换—第一趟选择排序-结果:最小数被存入 第 1 个数。 (2) 再通过 n-2 次比较,从剩余的 n-1 个数中找出次小 数,将它与第2个数交换—第二趟选择排序-结果:次小数 存入第 2 个数。 (3) 重复上述过程,共经过 n-1 趟排序后,排序结束