1 sort.c
#include<stdio.h>
#define MAX 1000
void quicksort(int arrar[],int low,int high)
{
int key=arrar[low];
int l=low;
int h=high;
if(low >= high)
return;
while(low < high)
{
while(low<high && arrar[high]>=key)
{
high--;
}
arrar[low]=arrar[high];
while(low<high && arrar[low]<key)
{
low++;
}
arrar[high]=arrar[low];
}
arrar[low]=key;
quicksort(arrar,l,low-1);
quicksort(arrar,high+1,h);
}
void bubblesort(int arrar[],int count)
{
int i,j,tmp;
for(i=0;i<count;i++)
{
for(j=0;j<count-1-i;j++)
{
if(arrar[j]>arrar[j+1])
{
tmp=arrar[j];
arrar[j]=arrar[j+1];
arrar[j+1]=tmp;
}
}
}
}
void selectsort(int arrar[],int count)
{
int tmp,i,j,min;
for(i=0;i<count;i++)
{
min=i;
for(j=i+1;j<count;j++)
{
if(arrar[min]>arrar[j])
min=j;
}
if(min!=i)
{
tmp=arrar[i];
arrar[i]=arrar[min];
arrar[min]=tmp;
}
}
}
void selectsort_2(int arrar[],int count)
{
int i,j,tmp;
for(i=0;i<count;i++)
{
for(j=i+1;j<count;j++)
{
if(arrar[i]>arrar[j])
{
tmp=arrar[i];
arrar[i]=arrar[j];
arrar[j]=tmp;
}
}
}
}
void insertsort(int arrar[],int count)
{
int i,j,tmp,k;
for(i=0;i<count;i++)
{
tmp=arrar[i];
for(j=i;j>0;j--)
{
if(tmp<arrar[j-1])
arrar[j]=arrar[j-1];
else
break;
}
arrar[j]=tmp;
printf("经过第%d趟排序的结果:\n",i);
for(k=0;k<count;k++)
printf("%-4d",arrar[k]);
printf("\n");
}
}
int main()
{
int count,i,j;
int array[MAX];
printf("输入数据的个数:\n");
scanf("%d",&count);
printf("输入数据:\n");
for(i=0;i<count;i++)
{
scanf("%d",&array[i]);
}
printf("数据的个数%d\n",count);
printf("数组的原始序列:\n");
for(i=0;i<count;i++)
{
printf("%-4d",array[i]);
}
printf("\n");
quicksort(array,0,count-1);
printf("排序后的结果:\n");
for(i=0;i<count;i++)
{
printf("%-4d",array[i]);
}
printf("\n");
return 0;
}
2 search.h
#include<stdio.h>
#define MAXSIZE 10
int search_f(int array[],int low,int high,int data)
{
int l,h,m;
if(low>high)
return -1;
l=low;
h=high;
m=(l+h)/2;
if(array[m]==data)
return m;
else if(array[m]<data)
search_f(array,m+1,h,data);
else
search_f(array,l,m-1,data);
}
int search(int array[],int data)
{
int l,h,m;
l=0;
h=MAXSIZE;
while(l<h)
{
m=(l+h)/2;
if(array[m]==data)
return m;
else if(array[m]<data)
l=m+1;
else
h=m-1;
}
return -1;
}
int main()
{
int array[MAXSIZE];
int i,data;
printf("请输入%d个数字:\n",MAXSIZE);
for(i=0;i<MAXSIZE;i++)
{
scanf("%d",&array[i]);
}
printf("请输入要查找的数据:\n");
scanf("%d",&data);
i=search_f(array,0,MAXSIZE-1,data);
if(i!=-1)
printf("查找的数据=%d\n",array[i]);
else
printf("没找到查找的数据\n");
return 0;
}