排序并查找(程序)
来源:互联网 发布:windows x86什么意思 编辑:程序博客网 时间:2024/05/20 06:10
/*
File: 实验6的程序
Description:用冒泡排序的方法对用户输入的任意的一个整型数组进行排序;排序后,用户
任意地输入的一个数,用二分查找法查找用户输入的数字,并给出该数在序列中的位置。
Programmer: luye
Date: 21/11/2007
*/
File: 实验6的程序
Description:用冒泡排序的方法对用户输入的任意的一个整型数组进行排序;排序后,用户
任意地输入的一个数,用二分查找法查找用户输入的数字,并给出该数在序列中的位置。
Programmer: luye
Date: 21/11/2007
*/
#include<stdio.h>
#define TRUE 1 /*符号常量的使用*/
#define FALSE 0
#define MAXNUMB 10000
#define TRUE 1 /*符号常量的使用*/
#define FALSE 0
#define MAXNUMB 10000
/*对用户输入的任意数组进行排序*/
void paixu (int *a,int maxnumb) /*函数paishu的首行部*/
{
int m,n,middvari;
for(m=0;m<maxnumb-1;m++) /*用循环语句交换两个数的位置*/
for(n=0;n<(maxnumb-1-m);n++)
if(*(a+n)>*(a+n+1))
{
middvari=*(a+n);
*(a+n)=*(a+n+1);
*(a+n+1)=middvari;
}
}
void paixu (int *a,int maxnumb) /*函数paishu的首行部*/
{
int m,n,middvari;
for(m=0;m<maxnumb-1;m++) /*用循环语句交换两个数的位置*/
for(n=0;n<(maxnumb-1-m);n++)
if(*(a+n)>*(a+n+1))
{
middvari=*(a+n);
*(a+n)=*(a+n+1);
*(a+n+1)=middvari;
}
}
/*用二分查找法查找用户要查找的数,并返回该数在序列中的位置*/
int zhaoshu(int b[],int key,int maxnumb) /*函数的首行部*/
{
int found,index,left,right,middnumb;
found=FALSE; /*设置found为false*/
index=-1; /*设置索引值为-1*/
int zhaoshu(int b[],int key,int maxnumb) /*函数的首行部*/
{
int found,index,left,right,middnumb;
found=FALSE; /*设置found为false*/
index=-1; /*设置索引值为-1*/
for(left=0,right=maxnumb-1; left<=right&&!found; )
{
middnumb=(int)((left+right)/2); /*找出中间的数值middnumb*/
if(key==b[middnumb]) /*把要查找的数和中间的数值middnumb进行比较*/
{
found=TRUE;
index=middnumb;
}
else if(key<b[middnumb])
right=middnumb-1;
else
left=middnumb+1;
}
{
middnumb=(int)((left+right)/2); /*找出中间的数值middnumb*/
if(key==b[middnumb]) /*把要查找的数和中间的数值middnumb进行比较*/
{
found=TRUE;
index=middnumb;
}
else if(key<b[middnumb])
right=middnumb-1;
else
left=middnumb+1;
}
return(index); /*返回该数在序列中的位置*/
}
}
void main()
{
int i,j,numb[MAXNUMB]; /*定义一个数组和循环控制变量*/
int maxnumb,key,location;
printf("Please type in a number:");
for(i=0;scanf("%d",&numb[i])!=EOF;i++) /*输入随意的几个数*/
{
maxnumb=i+1; /*变量maxnumb为用户输入的数组的元素个数*/
printf("Please type in a number:");
}
paixu(numb,maxnumb); /*函数paixu再这里被调用*/
for(i=0;scanf("%d",&numb[i])!=EOF;i++) /*输入随意的几个数*/
{
maxnumb=i+1; /*变量maxnumb为用户输入的数组的元素个数*/
printf("Please type in a number:");
}
paixu(numb,maxnumb); /*函数paixu再这里被调用*/
for(j=0;j<maxnumb;j++) /*输出排序后的有序数组*/
printf("%d\n",numb[j]);
printf("Please enter the number you want to find:"); /*输入用户要查找的数key*/
scanf("%d",&key);
printf("%d\n",numb[j]);
printf("Please enter the number you want to find:"); /*输入用户要查找的数key*/
scanf("%d",&key);
location=zhaoshu(numb,key,maxnumb); /*函数zhaoshu再这里被调用,并把返回的数值存储在location里面*/
if(location>-1) /*对返回的该数在有序的数组里的位置进行判断*/
printf("The number you are founding is located in %d .\n",location);
else
printf("The number you are founding is not founded!\n");
}
if(location>-1) /*对返回的该数在有序的数组里的位置进行判断*/
printf("The number you are founding is located in %d .\n",location);
else
printf("The number you are founding is not founded!\n");
}
- 排序并查找(程序)
- python小程序:查找nginx日志文件的ip点击率并排序
- 查找文件,并按时间排序
- 查找并复制程序用到的库
- Python的查找和排序小程序
- 二分查找程序算法和快速排序
- 6字节数据 做 二分查找并插入排序
- 用ArrayList存储HashSet中的随机数并排序、查找
- 从数据库中查找数据并按首字母排序
- java小程序——给数组随机赋值,查找输入的值以及冒泡和选择排序数组并输出
- 查找另一个程序,并将其显示在最前端
- windows下查找并强行关闭指定程序(转载)
- python 查找相应图片数据路径并调用exe程序
- Linux在当前目录下查找并运行可执行程序
- 排序 查找
- 查找排序
- 排序查找!
- 排序、查找
- 游戏编程资料合集(持续更新)
- select与poll的区别及使用
- oracle函数(不断更新中)
- int在32位机器中所占的内存大小引发的问题
- SQL中对日期的处理操作汇总
- 排序并查找(程序)
- 女人,想嫁他,就别跟他同居! (转载自网络)
- 合并排序
- 国漫教你七夕节发什么样的短信
- MFC如何实现文件的拖曳?
- C#网络编程服务器端程序实现源码浅析
- 如何在基于Dialog的程序中添加menu菜单 ?
- 【转】javascript技巧大全
- 【转】由浅入深学会存储过程