问题详情

阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。
函数quicksort(int a[],int n)实现了快速排序,其中,n个整数构成的待排序列保存在数组元素a[0]~a[n-1]中。
[C代码]#inclLade<stdi0.h>void quicksort(inta[],int n){int i,j;int pivot=a[0]; //设置基准值i=0;j=n-1;while (i<j){while (i<1 && ______)j--;//大于基准值者保持在原位置if(i<j){a[i]=a[j];i++;}while(i<j&& ______)i++;//不大于基准值者保持在原位置if(i<1){a[j]=a[i];1--;}}a[i]=pivot; //基准元素归位if(i>1)______; //递归地对左孔序列进行快速排序if(n-i-1>1)______; //递归地对右孔序列进行快速排序}int main(){int i,arr[]={23,56,9,75,18,42,11,67};quicksort(______); //调用quicksort对数组arr[]进行排序for(i=0; i<sizeof(arr)/sizeof(int); i++) printf("%d\t",arr[i]);return 0;}

相关热点: 基准值  

未搜索到的试题可在搜索页快速提交,您可在会员中心"提交的题"快速查看答案。 收藏该题
查看答案

相关问题推荐

阅读以下说明和 C 代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序, 最终得到非递减的有序序列。 函数 quicksort(int a[],int n)实现了快速排序,其中,n 个整数构成的待排序列保存在数组元素 a[0]-a[n-1]中。

【C 代码】 include < stdio.h> void quicksort(int a[] ,int n) { int i ,j; int pivot = a[0]; //设置基准值 i =0; j = n-l; while (i< j) { while (i1) (3) ; //递归地对左子序列进行快速排序 if ( n-i-1>1 ) (4) ; //递归地对右子序列进行快速排序 } int main () { int i,arr[ ] = {23,56,9,75,18,42,11,67}; quicksort ( (5) ); //调用 quicksort 对数组 arr[ ]进行排序 for( i=0; i

联系我们 用户中心
返回顶部