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

📄 quicksort.txt

📁 数据结构的快速排序算法的实现程序,希望对大家有帮助
💻 TXT
字号:
  #include<stdio.h>   
  #define   Maxsize   20   
    
  void   swap(int   *a,int   *b)   
  {   
  int   c;   
  c=*a;   
  *a=*b;   
  *b=c;   
  }   
    
  //一趟快速排序     
  int   QuickOnePass(int   *list,int   i,int   j)   
  {   
  int   temp;   
  temp=list[i];   
  /*   
  do{   
        while((list[i]>=temp)&&(j>i))   j--;   
            if(j>i)   
                    {   list[i]=list[j];i++;}   
        while((list[i]<=temp)&&(j>i))   i++;   
            if(j>i)   
                    {   list[i]=list[j];j--;}   
        }   while(j>i);   
  list[i]=temp;   
  */   
  while(i<j)   
  {   
  while(i<j&&list[j]>=temp)   
  j--;   
  swap(&list[i],&list[j]);   
  while(i<j&&list[i]<=temp)   
  i++;   
  swap(&list[i],&list[j]);   
  }   
  return   i;           
            
  }   
  //快速排序函数     
  QuickSort(int   *list,int   low,int   high)   
  {   
  int   k;   
    if(low<high)           
          {       k=QuickOnePass(list,low,high);   
                  QuickOnePass(list,low,k-1);                   //前半部分排序     
                  QuickOnePass(list,k+1,high);                 //后半部分排序     
            }   
  }   
    
    
  main()   
  {   
  int   list[Maxsize],i,index=0;   
  int   j;                 
  int   node;   
  //输入所要排的数           
  printf("Please   enter   numbers   you   want   to   sort:(0   for   exit)\n");   
  scanf("%d",&node);   
  /*   
    while(node!=0)   
                {           list[index]=node;   
                            index=index+1;   
                            scanf("%d",&node);   
                  }   
  */   
  printf("Input   %d   number   :\n",node);   
  for(j=0;j<node;j++)   
  {   
  scanf("%d",&list[j]);   
  }   
    
    
  //快速法排序                                                                                   
  //QuickSort(list,0,index-1);   
  QuickSort(list,0,node-1);   
  //输出排序后的数                                         
  printf("Final   sorting   result:\n");   
                    for(i=0;i<node;i++)   
                                printf("%5d",list[i]);   
  getchar();         
  getchar();                                                   
  }

⌨️ 快捷键说明

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