⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 quicsort.c

📁 在当今算法中
💻 C
字号:
/*****************************************/
/*              快速排序算法             */
/*  文件名quicsort.c,函数名quicksort()   */
/*****************************************/
void quicksort(table *tab,int left,int right)
{
  int i,j;
  if(left<right)
  {
    i=left;j=right;
    tab->r[0].key=tab->r[i].key; /*准备以本次最左边的元素值为标准进行划分,先保存其元素值*/
    do
    {
      while(tab->r[j].key>tab->r[0].key&&i<j) j--;/*从右向左查找第1个不小于标准值的元素位置j*/
      if(i<j)                             /*找到了,位置为j*/
      { tab->r[i].key=tab->r[j].key;i++;} /*将第j个元素置于左端并重置i*/
      while(tab->r[i].key<tab->r[0].key&&i<j) i++;/*从左向右查找第1个不大于标准值的元素位置i*/
      if(i<j)                       /*找到了,位置为i*/
      { tab->r[j].key=tab->r[i].key;j--;} /*将第i个元素置于右端并重置j*/
    }while(i!=j);
    tab->r[i].key=tab->r[0].key;         /*将标准值放入它的最终位置,本次划分结束*/
    quicksort(tab,left,i-1);     /*对标准值左边递归调用本函数*/
    quicksort(tab,i+1,right);    /*对标准值右边递归调用本函数*/
  }
}

⌨️ 快捷键说明

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