实例--线性表.pptVIP

  • 19
  • 0
  • 约4.13千字
  • 约 25页
  • 2017-07-22 发布于贵州
  • 举报
实例--线性表

* * 【实例1】设任意n个整数存放于数组A[n]中,试编写算法,将所有负数排在所有正数前面。要求不附加额外的存储空间,且算法时间复杂度为O(n) 。 void Rearrange(int a[],int n) { int i, j, k; i=0, j=n-1; // i,j初始指向线性表a头、尾个元素。 k=a[0]; //将第一个元素的位置腾出。 while (ij) { while (ij a[j]0) j--; //从右向左找负数。 if (ij) a[i++]=a[j]; //将负数前移。 while (ij a[i]0) i++; //从左向右找正数。 if (ij) a[j--]=a[i]; //将正数后移。 } a[i]=k; //将原第一元素放到最终位置。 } 【实例2】请设计算法,将一个向量(a1,a2,…,am)的内容原地逆置,成为(am,am-1,…,a1) 。 void Reverse(int A[], int m, int n) { int i=m, j=n; while ( ij ) { swap(A[i], A[j]); i++; j--;

文档评论(0)

1亿VIP精品文档

相关文档