正在加载图片...
413一维数组的应用 例4.3给定由6个成绩组成的序列{92,88,74,93,85,79}, 将其按从小到大的顺序排列。 算法分析: int changed =0 //一趟扫描是否进行了交换的标志,0:未交换,1:已交 for(i=1:i<n:i+ changed =0 /本趟扫描尚未交换 for(j=1: j<=n-i: j++) if( score [jl〉 score[j+1])//相邻元素逆序 score lo score /以 score]为临时变量,交换 score[j]和sc score score score[j+ 1]= score [O] changed =1 /本趟扫描进行了交换 if( changed) /如果本趟扫描未进行交换 break /退出排序4.1.3 一维数组的应用 例4.3 给定由6个成绩组成的序列{92,88,74,93,85,79}, 将其按从小到大的顺序排列。 算法分析: 本程序对无论什么样的数据都会扫描n-1遍,这使得程序在有 些情况下效率不高。比如,待排序序列已经排好序,而本 程序也会进行n-1遍扫描。实际上,本程序稍做修改,就可 以避免这种无用的多余扫描。 只需用一个变量changed表示一遍扫描中是否进行了交换。在 每一遍扫描开始时,将其置为0,表示未交换; 在扫描中如果进行了交换,则将此变量置为1。 本遍扫描完成后,如果changed的值为0,则表示本遍扫描中未 进行交换,因此可退出扫描,输出结果。 程序4_4.cpp
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有