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

📄 shuju.txt

📁 对n个关键字取整数的记录进行整序
💻 TXT
字号:
#include<stdio.h>
int Divide(int a[], int n)//把数组a中所有值为非负的记录调到负的记录之前
{  
 int l,h,t;
 l=0;
 h=n-1;
 while(l<h)
 {
   while(l<h&&a[h]>=0) h--;    //以0作为虚拟的枢轴记录
   {t=a[l]; //当从后向前找时发现后面的数为非负,交换当前a[l]与a[h]的值
    a[l]=a[h];
    a[h]=t;}
   while(l<h&&a[l]<0)  l++;//当从前向后找时发现前面的数为负,交换当前a[l]与a[h]的值
   {t=a[l]; a[l]=a[h];a[h]=t;}
 }//while
return 1;
}//Divide

void main()
{ int i=0;
  int n;
  int A[20];
  printf("请输入待排序的记录个数n:"); //提示输入数组元素个数
  scanf("%3d",&n);
  printf("请输入一组待排序的记录的值:\n "); //输入数组A
  for(i=0;i<n;i++)
     scanf("%3d",&(A[i]));
  printf("输出整理之前的记录为:\n ");
  for(i=0;i<n;i++)
     printf("%3d",A[i]);//输出数组A
  Divide(A,n);//调用函数Divide,把数组A中所有值为非负的记录调到负的记录之前
  printf("\n一次排序后的记录为:\n ");
  for(i=0;i<n;i++)
     printf("%3d",A[i]);
  printf("\n");
}//main

⌨️ 快捷键说明

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