导航:首页 > 编程语言 > 数据排序程序实验

数据排序程序实验

发布时间:2024-07-03 05:39:47

Ⅰ c语言先排序后折半查找程序的实验报告

1实验目的:熟练掌握一维数组,二维数组的定义,初始化和输入输出方法;熟练掌握与数组有关的常用算法(如查找,排序等)。
2实验内容:设定一个整形数组存放20个元素,用直接赋值的方法在程序中初始化该数组。先对这些无序的数据进行排序,然后采用折半查找,把要寻找的数的位置输出出来。
3算法描述流程图

源程序:#include<stdio.h>
void main()
{int k,s,b,i,j,m,n,a[20]={12,9,16,21,6,11,19,4,8,20,15,2,5,18,14,7,3,10,13,17};
for(s=0;s<20;s++)
{
for(i=s+1;i<20;i++)
{
if(a[s]>a[i])
{
j=a[s];
a[s]=a[i];
a[i]=j;
}
}
}
scanf("%d",&b);
m=0;
n=19;
while(m<=n)
{
k=(m+n)/2;
if(b==a[k])
{
printf("FOUND\n");
printf("%d\n",k+1);
break;
}
else
{
if(b<a[k])
n=k-1;
else
m=k+1;
}
if(m>n)
printf("NO FOUND");
}
}

5测试数据:3,5, 20,30

6运行结果:FOUND 2;FOUND 4;FOUND 19 ;NO FOUND

7出现问题及解决方法:编译时出错,修改源程序,直到没有错误为止

8实验心得:通过折半查找,可以实现对数组数据的处理,并且增加了查找速度

Ⅱ 使用单片机汇编语言冒泡法排序

一、实验要求
给出一组随机数,将此组数据排序,使之成为有序数列
二、实验目的
1.了解数据排序的简单算法。
2.了解数列的有序和无序概念
三、实验说明
有序的数列更有利于查找。本程序用的是“冒泡排序”法,算法是将一个数与后面的
数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在
数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。
四、程序框图

Size equ 10 ; 数据个数
Array equ 50h ; 数据起始地址
Change equ 0 ; 交换标志

Sort:
mov r0, #Array
mov r7, #Size-1
clr Change
Goon:
mov a, @r0
mov r2, a
inc r0

mov B, @r0
cjne a, B, NotEqual
sjmp Next
NotEqual:
jc Next ; 前小后大, 不交换

setb Change ; 前大后小, 置交换标志
xch a, @r0 ; 交换
dec r0
xch a, @r0
inc r0
Next:
djnz r7, Goon
jb Change, Sort
ljmp $

end
引自:伟福单片机开发平台软件实验

Ⅲ 单片机排序程序

MOV R5,#16
MOV R6,#40H
LONG:
MOV R4,#15;16个数比较15次
MOV A,30H;将30H里面的内容复给A
MOV R0,#31H;让其从31H开始自加到3FH
L:
SUBB A,@R0;31H里面的内容和30H里面的内容进行相减比较求C
JC XU;如果C=0则表示A里面的内容大于@R0里面的内容否则小于跳转XU
INC R0;R0加1到下一单元地址
DJNZ R4,L;15次比较没有结束跳转到L继续执行
AJMP LL;如果15次循环完毕则求出最大值,然后再循环求出次大值
XU:
MOV A,R0;放比较数的地址送A,以清零方便为第二次比较
MOV R1,A;方便清零
MOV A,@R0;最大值送A
INC R0
AJMP LL
LL:
MOV @R1,#00H;最大值地址清零,然后再比较15次求次大值
MOV R6,A;最大值送40H
INC R6
DJNZ R5,LONG;判断是否全部从大到小排完
AJMP TT
TT:
END

阅读全文

与数据排序程序实验相关的资料

热点内容
压缩包会改变文件内容么 浏览:548
45度面槽怎么编程 浏览:742
苹果6原装充电器多大的 浏览:814
腾讯群文件 浏览:584
win10双击excel文件无法直接打开 浏览:152
dnf90版本剑魂右槽排名 浏览:375
mac给文件夹添加快捷方式到桌面 浏览:221
如何提高配套文件科学性 浏览:552
免费qq在线客服代码 浏览:615
网络摄像机和麦克风的使用点不了 浏览:872
win10资源文件夹卡死 浏览:431
联想笔记本如何添加网络连接 浏览:821
钉钉文件下载到微信用哪个浏览器 浏览:252
word怎么删掉第一页 浏览:215
为什么小米5不能升级系统 浏览:768
复古摄影教程 浏览:803
u盘里文件显示文件夹空 浏览:574
如何编程年月日的进制 浏览:351
升级电脑硬件注意什么 浏览:827
cnc铣床多主轴如何编程 浏览:640

友情链接