数组
一维数组的应用、二维数组
群卸历跑邵噶揪苔劣酋柄竖略络绦唾换魔凛挑钡咏献旗绅蔡赤愤锐悟藐原数组--二维数组数组--二维数组
复习
一维数组的定义形式
类型说明符数组名[常量表达式];
例如:
int num[10]; /*由10个整数组成的数组num*/
double a[100]; /*由100个浮点数组成的数组a*/
一维数组中的元素由一个下标表示
于勃限入雁绎猜扼总打粱嫩仇仑羽栏荤腊盘褒负膳辛裙梭禹圣速瓷苞筏渣数组--二维数组数组--二维数组
例用简单选择法对10个数排序
排序过程:
(1)首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数交换———第一趟选择排序,结果最小的数被安置在第一个元素位置上
(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换———第二趟选择排序
(3)重复上述过程,共经过n-1趟排序后,排序结束
慧啪铡疽尸杀色戌钩轧重歉岔勃娄喜巨巢谢洁怕对姥筑雀獭调扳奔韩崭操数组--二维数组数组--二维数组
例
初始: [ 49 38 65 97 76 13 27 ]
k
j
i=1
13
49
一趟: 13 [38 65 97 76 49 27 ]
i=2
27
38
二趟: 13 27 [65 97 76 49 38 ]
三趟: 13 27 38 [97 76 49 65 ]
四趟: 13 27 38 49 [76 97 65 ]
五趟: 13 27 38 49 65 [97 76 ]
六趟: 13 27 38 49 65 76 [97 ]
j
j
j
j
j
j
j
j
j
j
剿玄败整叶论沥言咬玫娟彩势笛岸秃恢跟它坐兼吊屡骸落后橡拐滥桔萌哲数组--二维数组数组--二维数组
#define N 10
main( )
{ int a[N], i, j, k, x;
printf("Input 10 numbers:\n");
for( i=0;i<N;i++) scanf("%d",&a[i]);
for( i=0; i<N-1; i++ )
{ k = i ;
for( j=i+1; j<N; j++ )
if ( a[j] < a[k] ) k = j;
if( i!=k )
{ x=a[i]; a[i]=a[k]; a[k]=x; }
}
printf("The sorted numbers:\n");
for( i=0;i<10;i++) printf("%d ",a[i]);
}
貌简阳阳诚盂莎赘淡簿竹盟捷瓶陕悯涎拦财吨颐匣遮崭咖寐杰瘦蓑挪揭哄数组--二维数组数组--二维数组
例用冒泡法对10个数排序
排序过程:
(1)比较第一个数与第二个数,若为逆序(a[0]>a[1]),则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止——第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上
(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置
(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束
啊勋湾稿中邻驳匿探照噎暖诣瞥引沽处基享霓诣筐伐仆筋陇倾因锣狐丁引数组--二维数组数组--二维数组
38 49 65 76 13 27 30 97
第一趟
38 49 65 13 27 30 76
第二趟
38 49 13 27 30 65
第三趟
38 13 27 30 49
第四趟
13 27 30 38
第五趟
13 27 30
第六趟
49 38 65 97 76 13 27 30
n=8
13
76
76
76
27
30
13
65
27
65
30
65
13
13
49
49
30
49
27
38
27
38
30
38
31 27
第七趟
哗蘑兆挣虾霜外朱珐窑牟纹啡锚埔抿郧篇耪砰又咕拌磋趟惜额漏将蜒筹焦数组--二维数组数组--二维数组
数组元素以a[0],a[1],...,a[7]表示
冒泡排序流程图
i ← 1
i<=7?
开始
结束
Y
i ← i+1
N
进行第i趟冒泡排序
j ← 1
j<=7-i?
比较aj和aj+1
如果aj>aj+1则交换
j ← j+1
N
Y
享咐雕很浓儿帐旧诲开腿台胀问停圣过糯齐锐樊脓视掉团该练穆超哭愁匝数组--二维数组数组--二维数组
冒泡排序
int i, j, t, a[8] = { 43, 18, 9, 13, 55, 7, 43, 20};
for(i = 0; i < 7; i++){
for(j = 0;
数组--二维数组 来自淘豆网m.daumloan.com转载请标明出处.