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

📄 zhu.cpp

📁 三个排序算法合并的源程序,用C语言做的,用主函数分别调用,是排序章节的实验!
💻 CPP
字号:
#include"stdio.h"
#include"malloc.h"
#include"stdlib.h"
#define True 1
#define False 0
void quickSort(int a[],int left,int right)
{
   int i,j,temp;
   i=left;
   j=right;
   temp=a[left];
   if(left>right)
      return;
   while(i!=j)/*找到最终位置*/
   {
      while(a[j]>=temp && j>i)
         j--;
      if(j>i)
         a[i++]=a[j];
       while(a[i]<=temp && j>i)
          i++;
       if(j>i)
          a[j--]=a[i];
         
   }
   a[i]=temp;
   quickSort(a,left,i-1);/*递归左边*/
   quickSort(a,i+1,right);/*递归右边*/
}

void maopao(int a[],int mm) 
{
   int i,temp;
   for(i=1;i<=mm-1;i++)  /*m个数字需要m-1轮排序*/
  {
    int j;
    int ok=True;       
    for(j=0;j<=mm-i;j++)/*第i轮排序需要比较m-i次*/
   {
     if(a[j]>a[j+1])
     {
        ok=False;
        temp=a[j];
        a[j]=a[j+1];
        a[j+1]=temp;
     }
    }
     if(ok==True)  /*若该轮排序没有发生任何交换,则说明已经排好序了*/
          break;
   }
  }

void insertSort(int a[],int count)   /*count为排序数字个数*/
{
   int i,j,temp;
   for(i=1;i<count;i++)    /*依次插入数字到它前面已经排好序的数字中去*/
   {
      temp=a[i];
      j=i-1;
      while(a[j]>temp && j>=0)
      {
        a[j+1]=a[j];
         j--;
      }
      if(j!=(i-1)) /*第i个数字比前面的都大,不需要重新插入*/       
      {
        a[j+1]=temp;
      }
         
    }
}

void main() 
{int j,n;
 char c;
   int a[10];
   int i;
 printf("1.输入一组数(整型)\n2.采用快速排序\n3.采用冒泡排序\n4.采用直接插入排序\n5.退出\n");
 while(1)
 {
  printf("\n请选择:");
  scanf("%d",&i);
  c=getchar(); //*****接受回车符******
   switch (i)
  {
  case 1:
   printf("请输入要的元素个数:");
   scanf("%d",&n);
   for (j=0;j<n;j++)
   {
	   printf("<%d>",j+1);
	   scanf("%d",&a[j]);
   }
   break;
  case 2:
    quickSort(a,0,n-1);
    /*排好序的结果*/
    for(i=0;i<n;i++)
        printf("%4d",a[i]);
   break;
  case 3:
    maopao(a,n-1);
   for(i=0;i<n;i++)
  
      printf("%4d",a[i]);
  
   break;
  case 4:
    insertSort(a,n-1);
    for(i=0;i<n;i++)      /*输出排序后的结果*/
     printf("%4d",a[i]);
   break;
  case 5:
    exit(0);
  default:
   printf("ERROR!Please Reput A Number\n");
  }
 }
}

⌨️ 快捷键说明

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