阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】下面的程序利用快速排序中划分的思想在整数序列中找出第k小的元素(即将元素从小到大排序后,取第k个元素)。对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序的序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。例如,整数序列“19,12,30,11,7,53,78,25"的第3小元素

欢迎免费使用小程序搜题/刷题/查看解析,提升学历,成考自考报名,论文代写、论文查重请加客服微信skr-web

阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】下面的程序利用快速排序中划分的思想在整数序列中找出第k小的元素(即将元素从小到大排序后,取第k个元素)。对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序的序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。例如,整数序列“19,12,30,11,7,53,78,25"的第3小元素为12。整数序列“19,12,7,30,11,11,7,53.78,25,7"的第3小元素为7。函数partition(inta[],intlow,inthigh)以a[low]的值为基准,对a[low]、a[low+l]、…、a[high]进行划分,最后将该基准值放入a[i](low≤i≤high),并使得a[low]、a[low+l]、,..、A[i-1]都小于或等于a[i],而a[i+l]、a[i+2]、..、a[high]都大于a[i]。函教findkthElem(inta[],intstartIdx,intendIdx,inrk)在a[startIdx]、a[startIdx+1]、...、a[endIdx]中找出第k小的元素。【代码】#include<stdio.h>#include<stdlib.h> Intpartition(inta[],intlow,inthigh){//对a[low..high]进行划分,使得a[low..i]中的元素都不大于a[i+1..high]中的元素。intpivot=a[low];//pivot表示基准元素Inti=low,j=high;while((1)){While(i<j&&a[j]>pivot)--j;a[i]=a[j]While(i<j&&a[i]>pivot)++i;a[j]=a[i]}(2);//基准元素定位returni;}IntfindkthElem(inta[],intstartIdx,intendIdx,intk){//整数序列存储在a[startldx..endldx]中,查找并返回第k小的元素。if(startldx<0||endIdx<0||startIdx>endIdx||k<1||k-l>endIdx||k-1<startIdx)Return-1;//参数错误if(startIdx<endldx){intloc=partition(a,startIdx,endldx);∥进行划分,确定基准元素的位置 if(loc==k-1)∥找到第k小的元素return(3);if(k-l<loc)//继续在基准元素之前查找returnfindkthElem(a,(4),k);else//继续在基准元素之后查找returnfindkthElem(a,(5),k);}returna[startIdx];}intmain(){inti,k;intn;inta[]={19,12,7,30,11,11,7,53,78,25,7};n=sizeof(a)/sizeof(int)//计算序列中的元素个数for(k=1;k<n+1;k++){for(i=0;i<n;i++){printf(“%d/t”,a[i]);}printf(“\n”);printf(“elem%d=%d\n,k,findkthElem(a,0,n-1,k));//输出序列中第k 小的元素}return0;}

1) CountStr 2) p[i] 3) p[i] 4) num 3、 1、!i=j 2、a[i]=pivot 3、a[loc] 4、stratIdx,Loc-1 5、Loc+1,endIdx

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top