数据结构--例题.docVIP

  • 28
  • 0
  • 约1.32万字
  • 约 12页
  • 2017-02-06 发布于湖北
  • 举报
数据结构--例题

!!对给定关键字序号j(1jn),要求在无序记录A[1..n]中找到关键字从小到大排在第j位上的记录,写一个算法利用快速排序的划分思想实现上述查找。(要求用最少的时间和最少的空间) 例如:给定无序关键字{7,5,1,6,2,8,9,3},当j=4时,找到的关键字应是5。 int partition(RecType A[], int 1, int n) { int i=1,j=n;x=A[i].key; i=1; while(ij) { while(ij A[j].key=x) j--; if(ij) A[i++]=A[j]; while(ij A[i].key=x) i++; if(ij) A[j--]=A[i]; } return i; } void Find_j(RecType A[],int n,int j) n为数组长度 { i=partition (A,1,n); while(i!=j) if(ij) i=partition(A,i+1,n); ∥在后半部分继续进行划分 else i=partition(A,1,i-1); ∥在前半部分继续进行划分 }

文档评论(0)

1亿VIP精品文档

相关文档