选择排序(以5个数为例) 1. 算法:5个数需做4趟排序,每一趟找最大元素与最后一个元素交换(或找最小元素与第一个元素交换) 2. 分析:4趟排序的元素分别为: a[0] a[1] a[2] a[3] a[4] a[0] a[1] a[2] a[3] a[0] a[1] a[2] a[0] a[1] 3.细化算法: 5个数需做4趟排序。第i趟(i=0,1,2,3)时,对a[0]~a[4-i]排序,找最大元素与a[4-i]交换。 4.如何找最大元素? 答:找最大元素所在位置的下标,即可找到最大元素。  
5.排序代码如下: for(i=0;i<4;i++) //5个数做4趟排序  { ma=4-i;
for(j=0;j<4-i;j++)
if(a[j]>a[ma])ma=j; t=a[ma];a[ma]=a[4-i];a[4-i]=t; //最大元素与最后一个元素交换 } 对n个数的选择排序代码如下: for(i=0;i<n-1;i++) { ma=n-1-i; for(j=0;j<n-1-i; j++) if(a[j]>a[ma])ma=j; t=a[ma];a[ma]=a[n-1-i];a[n-1-i]=t;} 2016年3月5日在第十二届全国人民代表大会第四次会议上国务院总理李克强作政府工作报告时说:“鼓励企业开展个性化定制、柔性化生产,培育精益求精的工匠精神,增品质、提品质、创品牌。” “工匠精神”出现在政府工作报告中,让人耳目一新,古语云:“玉不琢,不成器”。工匠们喜欢不断雕琢自己的产品,不断改善自己的工艺,享受着产品在双手中升华的过程。他们追求完美和极致,其利虽微,却长久造福于世。 在学习程序设计过程中,需要不断由简到繁的提炼出解决问题的算法,从文字表述,再到符号表达,最后到C代码,不可丢掉任意一个细节,否则一定会出错。程序设计是培养注重细节,一丝不苟的工匠精神的适宜课程。 |