阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。 【函数】 void QuickSort( int A[ ],int s,int t) {

admin2009-02-15  35

问题 阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
   函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。
   【函数】
   void QuickSort( int A[ ],int s,int t)
   {  int i=s,j=t+1,temp;
      int x=A[s];
      do{
         do i ++ ;while  (1);
         do j -- ;while(A[j]>x);
         if(i<j){temp=A;(2);(3);}
         }while(i<j);
      A[a] =A[j];A[j] =x;
      if(s<i-1)  (4);
      if(j+1<t)  (5);
   }

选项

答案(1)A[i]<x (2)A[i]=A[j] <3)A[j]=temp (4)QuickSort(A,s,j-1) (5)QuickSort(A,j+1,t);

解析 快速排序的思想是:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。快速排序是对冒泡排序的一种改进方法,算法中元素的比较和交换是从两端向中间进行的,排序码较大的元素一次就能够交换到后面单元,排序码较小的记录一次就能够交换到前面单元,记录每次移动的距离较远,因而总的比较和移动次数较少。
转载请注明原文地址:https://kaotiyun.com/show/6ojZ777K
0

最新回复(0)