正在加载图片...
一趟快速排序算法描述 int QuickOne(sqList &L, int i, int j 据结构 Lr10=L.ri;e=L.r[ikey;∥e是控制关键字 while(i<j){∥=j时,找到e的最终位置 while(e<= Lrlj.key&&ij)j-;/与后比较 Lr=LrIj; while(e>= L rli. key&&i<j计+;∥与前比较 内部排序 Lr[j=Lr; i//while L rli=Lrlo return i; 31 快速排序的非递归算法描述 s void QuickSort(SqList &L)( 据 Initstack(S);∥建立int型动态栈作为辅存 构 push(s, 1); push(S, Llength); while( Empty(s))t pop(s, end); pop(s, start); i-QuickOne (L, start, end ) 部∥如果左右两边各有2个以上关键字,首、尾入栈 排 if( start <i-1)(push(S, start); push(S, i-1);3 if(end>i+1) push(S, i+ 1);push(S, end);) 3216 数 据 结 构 之 内 部 排 序 31 一趟快速排序算法描述 int QuickOne(SqList &L, int i , int j ){ L.r[0]=L.r[i]; e=L.r[i].key; //e 是控制关键字 while(i<j){ //i=j时,找到 e 的最终位置 while(e <=L.r[j].key && i<j) j--;//与后比较 L.r[i]=L.r[j]; while(e >=L.r[i].key && i<j) i++;//与前比较 L.r[j]=L.r[i]; }//while L.r[i]=L.r[0]; return i; }//end 数 据 结 构 之 内 部 排 序 32 快速排序的非递归算法描述 void QuickSort(SqList &L){ InitStack(S); //建立 int 型动态栈作为辅存 push(S,1); push(S , L.length); while(! Empty(S)){ pop(S,end) ; pop(S, start); i=QuickOne(L , start , end ); //如果左右两边各有2个以上关键字,首、尾入栈 if( start <i-1 ) {push(S, start);push(S, i-1);} if(end>i+1) {push(S,i+1);push(S,end) ; } } }
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有