频道栏目
首页 > 资讯 > 数据库 > 正文

计算机等级考试三级数据库技术考试十类必记语句之数组排序

13-07-04        来源:[db:作者]  
收藏   我要投稿
  数组排序
  
  变量说明:
  i和i都是循环变量,同时也是数组b的下标变量,temp是两数转换时的中间变量,以上变量名都可以由考生自定义,而数组b口的名称需要根据题目要求进行命名。另外,变量cnt表示数组中元素的总数,该变量值一般需要计算得到,可参考第(5)点中的相关语句,此处不再重复讲解。
  表达式含义:
  在一维数组b口中,通过两个for循环对数组中的每个数进行比较。
  ①首先,在第一层fbr循环中,循环变量i的值与数组下标的值同步,即都是从0开始,每循环一次,变量值加1,即数组下标值加1,直到读取到倒数第2个元素时,循环结束,注意,因为一维数组的下标值是从0开始的,因此,当数组有cnt元素时,最后一个元素的数组下标值实际等于cnt-1,当i值等于cnt-1的值的时候,将不再执行fbf循环体中的语句。②然后第2层for循环中,循环变量J的起始位置是从上一个循环i值位置的下一位置开始,即i+1的位置开始,在该循环中,i的值始终保持不变,而J的值依次递增加1,直到j值等于元素总数cnt值时结束循环,这样,就能将第i个数与其后面所有的数进行比较。
  ③最后,通过一个排序语句,对数组中的元素进行升序或降序排序。
  例如:
  假设,数组b[5]中的6个数字及顺序为:7、5、8、3、4、6,即:b[0]7,b[1]-5,b[2]=8,b[3]=3,b[4]=4,b[5]=6,按从小大的顺序排序。
  ①执行流程如下:
  ●首先执行第一层for循环的第1次循环,i的起始值为0,b[0]7,即b[i]的当前值等于7。
  ●此时开始执行第二层的for循环,j的起始值为i+1,此时b[j]=b[1]-5。将b[0]和b[1]进行比较,如果b[O]>b[1],
  则交换两个数的位置,交换位置后b[i]=b[O]=5,b[j]=b[1]=7;
  ●继续执行第二层for循环,此时,j的值加1,则bD]=b[2]=8,再将bD]与b[i]进行比较,此时b[i]的值小于b[j]的值,不符合判断,两数的位置不变:依次类推,再继续读取b[3]、b[4]、b[5]的值与b[0]的值进行比较,这样,在所有的比较结束后,最小的一个数就排到了b[0]的位置了。
  ●此时,完成了第一层循环的第1次循环,数组序列为:3、5、7、8、4、6。
  ②执行第一层for循环的第2次循环时,i的值加1,即b[i]=b[1卜5,此时是从数组的第2个元素开始,然后再执行第二层fi)r循环,j的值从i+1=1+1=2开始,接着比较b[i]和b[j]的大小,按升序排列,根据①中的说明,执行类似的操作,再将b[3]、b[4]、b[5]后面与b[1]比较大小,重新排序,当第一层for循环的第2次循环结束后,数组序列为:3、4、5、7、8、6。
  ③根据前两个步骤可以看出,在第一层for循环的两次循环结束后,最小的两个数也都按升序的方式排列到最前面了,依次类推,第一层for循环的第3次循环将从数组的第3个元素开始进行判断,最后,在所有的循环结束后,数组序列为:3、4、5、6、7、8。
  总之,记住一点,在执行两层fbr循环时,只有第二层循环中的所有循环执行完毕,第一层循环才会开始新一轮的循环计算。另外,还要注意的是,只有两个紧接着的或有包含关系的for语句才构成双重循环,如果两个for语句之间有别的语句,则两个for语句是相对独立的,不构成双重循环。
相关TAG标签
上一篇:计算机等级考试三级数据库技术考试十类必记语句之求平均值
下一篇:计算机等级考试三级数据库技术考试十类必记语句之将数值存入数组的语句关键语句
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站