冒泡法实验报告
冒泡法实验报告
篇一:
冒泡法排序实验报告
冒泡法排序实验报告
一、实验任务
实现N个16位无符号整数的排序,核心程序使用汇编语言实现。
二、程序算法
冒泡法:
若有n个数需要排序,则第一次遍历n个数,将x与x相比,若
xx,则两数交换位置,若x<x,则不作任何调整;然后将x与x相比
较,若xx,则两数交换位置;若x<x,则不作任何调整;依此类推,
直到x与x比较完毕为止。
接着第二次遍历n-1个数,将x与x相比,若xx,则两数交换位置,若
x<x,则不作任何调整;一直到x与x比较完毕为止。
最后一直到只需要遍历2个数,比较调整完毕就可以得到数组从小到
大的排列次序,算法在每次遍历时使最小的数象气泡一样冒到顶端,
在经历n-1次遍历以后即可得到结果。
三、源程序及注释
冒泡排序法
#inlude <iostream.h                                                    int main                                                              {
unsigned short int x;    排序个数上限为33个
unsigned short int i,j,n;                                                  unsigned short int a,b;                                                    提示输入排序个数
out<<Please input the ount of numbers: \n;                          inn;
提示输入需要排序的各个数
out<<Please input the numbers: \n;                                  x = 0;
for    初始化需要排序的数组x                                              inx;
for      冒泡法排序
{
for每次遍历n-i个数
{
a = x;
b = x;
_asm
{
mov ax,a  将一个数读入到ax                                            mp ax,b  比较两数大小
j exit    若a小则跳出
xhg ax,b  若b小则两数交换次序
mov a,ax
exit:
NOP
}                                                            x = a;        保存两数排序结果    x =
b;
}
}                                                                输出排序结果,按从小到大排列
out<<The Result is : \n;                                            for
out<<x<<' ';                                          out<<'\n';                                                  return
0;
}
四、实验结果
篇二:
微机原理实验报告冒泡法对数据排序
实验内容:用“冒泡“法对一组数300,250,280,240,260,按从小
到大的顺序排列。
实验要求:
1.编制程序,对这组数进行排序,并输出原数据及排序后数据;
利用DEBUG调试工具,用D0命令,查看排序前后,内存数据的变
化;
3. 去掉最大和最小的两个值,求出其余值的平均值,并输出最大
值,最小值和平均值;
4. 用学过的压栈PUSH和出栈POP指令,将平均值按位逐个输出
{  int a;  int i,j,t;  printf  sanf  for  if  {    t=a;
a=a;    a=t;    }    printf    printf{  int a;  int i,j,t,k;
printf  sanf {  k=i;  for  if      k=j;  t=a;  a=a;
a=t;  }                                                                printf
printf{
int                                                              a={456,1564,1231,44,1,32,78,15,3,656},i;                                  for  printfsort命令排序
printf{
int i,j,k,m,temp;  k=0;  m=n-
1;
}
hile{  j=m;  m=0;  for    if  {      temp=a;    a=a;
a=temp;    m=i;  }  j=k;  k=0;  for  if  {    temp=a;    a=a;
a=temp;    k=i;  } }                                                      实验结果
五、实验心得
通过实验学习,我理解了冒泡排序的算法,并实现了用语言编写程
序,提高了我的编程能力,受益匪浅。篇五:
冒泡实验报告
冒泡排序实验报告
实验目的:对比数组和向量的使用方法
实验要求:使用函数实现冒泡排序算法,传递参数分别为数组和向
量,要求数据不被破坏;
实验原理:
冒泡排序的原理:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一
对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一
对数字需要比较。
数组和向量的区别:向量其实是对动态数组加补充之后的结果,所以
向量在很多方面都和数组很相似,但不同于数组,向量可以进行容量
大小的访问工作,以及直接进行复制的操作。
实验过程:用数组实现排序:先设计了一个Arrlist类,包括数据成
员size(输入数列的个数),以及*arram(指向数组的int指针)
以及几个成员函数:
Arrlist                                                              因为数组不能直接进行复制,所以需要利用一个for循环来拷贝数据

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。