quick.cpp

来自「这是本人精心搜集的关于常用图论算法的一套源码」· C++ 代码 · 共 37 行

CPP
37
字号
#include <stdlib.h>
#include <iostream.h>
#include <time.h>
#include "sqlist.h"
void main(void)
{void qksort(recordfile r,int s,int t); //快速排序算法 
  int n,i;  time_t t;
  recordfile r;
  cout<<" Please input sorted elements number=? ";  cin>>n; 
  srand((unsigned)time(&t));
  for(i=1;i<=n; i++) r[i].key=rand() % 83 +10;
  cout<<" origil array is\n";
  for(i=1;i<=n; i++)
     { cout<<r[i].key<<"  ";
       if(i%10==0)cout<<endl;
     }  
  qksort(r,1,n);
  cout<<"\n sort array is\n";
  for(i=1;i<=n; i++)
     { cout<<r[i].key<<"  ";
       if(i%10==0)cout<<endl;
     }
  cout<<"\n\n";
}
void qksort(recordfile r,int s,int t)   // 把r[s]至r[t]的文件进行快速排序
{ int i=s,j=t;
   if(s<t){ r[0]=r[s];
   	    do{ while (j>i&&r[j].key>=r[0].key) j--;
                if(i<j){ r[i]=r[j]; i++;  }
                while (i<j&&r[i].key<=r[0].key) i++;
                if(i<j){ r[j]=r[i]; j--; }
              } while (i<j);              // 直到i==j 脱离循环
            r[i]=r[0];
            qksort(r,s,j-1);  
            qksort(r,j+1,t);
          } //end_if
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?