2 线性选择排序法(Linear Selection Sort) 线性选择排序法是每执行一趟(Pass)排序便从数组中选择最小的数据,然后把它依序存入输出数组中。在第一趟排序时(Pass1),我们先设Lower为p[0],而address为0,然后从第1个数据开始依序比较,直到找到较小值:(Lower:95)(注:(Lower:95)表示Lower值与 95 比较,以下类推),(Lower:27),(Lower:75),(Lower:42),(Lower:69),(Lower:34),(Lower:16),(Lower:9),此时找到较小值9,然后把Lower设成新的较小值9,同时将Lower值的位置指定给address(即address=8)。Lower及address设成新值后,再继续比较取代,直到所有数组数据都选择过。因此在一趟排序后,Lower 值为最小值,同时address为最小值的位置,我们再把Lower值存放入输出数组q,且把p[address] 的数据设成MAXNUM(最大数),不过在下面表示为“Z”,此后在说明时,都以“Z”代表MAXNUM。 <script> var data=[] var temp=[] var MAXNUM=Number.POSITIVE_INFINITY function LS_Sort(p,q,n) { var i,j,lower,address,counter; for(i=0;i
3 交换-线性选择排序法(Linear Selection With Exchange Sort) 交换-线性选择排序法是利用lower及address来决定每一趟排序的最小值及最小值的位置,但每一趟排序后所找到的最小值直接和上限的数据互换。每趟排序后,都得到一个较小数据,而且以数据互换的操作,把较小数据存入正确位置,因此紧接下一趟排序都会减少一个扫描数据,第i趟排序从数组的第i个数据开始扫描,而第i个数据设为lower。 <script> var data=[] function LSE_Sort(p,n) { var i,j,lower,address; for(i=0;i