汇编语言,冒泡法排序

作者&投稿:照震 (若有异议请与网页底部的电邮联系)
汇编语言用“冒泡法”排序~

经典排序之冒泡排序

以下是冒泡排序子程序,可直接调用:(请设置es与ds相同);===============================; 字数组排序(有符号数冒泡排序) SORTWORD PROC NEAR ; 数组长度置入cx,数组首地址置入 si PUSH AX PUSH CX PUSH DX PUSH SI PUSH DI PUSHF PUSH CX POP DX DEC DX @SORTWL1: MOV CX,DX MOV DI,SI @SORTWL2: MOV AX,[DI+2] CMP AX,[DI] JL @SORTWNEXT ; 从大到小(无符号换成 JB) XCHG AX,[DI] MOV [DI+2],AX @SORTWNEXT: INC DI INC DI LOOP @SORTWL2 DEC DX JNZ @SORTWL1 POPF POP DI POP SI POP DX POP CX POP AX RET SORTWORD ENDP;===============================================; 字节数组排序(有符号数冒泡排序) SORTBYTE PROC NEAR ; 数组长度置入cx,数组首地址置入 si PUSH AX PUSH CX PUSH DX PUSH SI PUSH DI PUSHF PUSH CX POP DX DEC DX @SORTBL1: MOV CX,DX MOV DI,SI @SORTBL2: MOV AL,[DI+1] CMP AL,[DI] JL @SORTBNEXT ; 从大到小(无符号换成 JB) XCHG AL,[DI] MOV [DI+1],AL @SORTBNEXT: INC DI LOOP @SORTBL2 DEC DX JNZ @SORTBL1 POPF POP DI POP SI POP DX POP CX POP AX RET SORTBYTE ENDP;===============================================

显示,要先变换成 ASCII 码。


……
    JNZ   LOOP1
    MOV   AH, 2
    MOV   CX, 10
DISPL:
    MOV   DL, [SI]
    ADD   DL, '0'      ;--加上这句
    INT   21H
    DEC   SI
    LOOP  DISPL
    MOV   AX, 4C00H
……


经典排序之冒泡排序




C语言:冒泡排序法将数组中10个元素从小到大排序,并找出最小值?_百度...
include<stdio.h> int main(){ int a[11],min=0,t;for(int i=0;i<10;i++)scanf("%d",&a[i]);min=a[0];for(int i=0;i<10;i++)if(a[i]<min)\/\/求最小值 min=a[i];for(int i=0;i<10;i++)\/\/冒泡排序 for(int j=0;j<9-i;j++)if(a[j]>a[j+1]){ t=a...

...整数进行排序,使其数组元素的值按从大到小的顺序排列。
{ int i,j,k,a[N]={ 1,3,2,5,4,8,9,7,6,10 };for ( i=0;i<N-1;i++ ) \/\/i的取值0~8 for ( j=N-1;j>i;j-- ) \/\/j的取值9~(i+1)if ( a[j-1]<a[j] ) { k=a[j-1]; a[j-1]=a[j]; a[j]=k; } \/\/比较j-1和j位置的数,满足条件冒泡 for ...

冒泡排序法,思路详解
冒泡排序是最简单的排序方法,理解起来容易。虽然它的计算步骤比较多,不是最快的,但它是最基本的,初学者一定要掌握。冒泡排序的原理是:从左到右,相邻元素进行比较。每次比较一轮,就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。以从小到大排序为例,第一轮比较后,...

冒泡排序算法有几种写法?
冒泡排序算法有两种,一种是从大到小排,另一种是从小到大排。冒泡排序依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。冒泡排序最核心的思想就是相邻的两个元素相比较...

C语言 冒泡排序法的代码
include<stdio.h> void main(){ int a[10];int i,j,t;printf("input 10 numbers:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(j=0;j<9;j++) \/*进行9次循环 实现9趟比较*\/ for(i=0;i<9-j;i++) \/*在每一趟中进行9-j次比较*\/ if(a[i]>a[i+1]) \/*相邻两...

用冒泡排序法对输入的10个数进行升序排序 并存入数组中
C语言程序如下;include <stdio.h> define ARR_LEN 255 \/*数组长度上限*\/ define elemType int \/*元素类型*\/\/* 冒泡排序 *\/ \/* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 *\/ \/* 2. 对所有元素均重复以上步骤,直至最后一个元素 *\/ \/* elemType arr[]: 排序目标数组;...

c语言中用冒泡排序法排列下列十个数字从小到大1,3,6,8,2,7,9,0,4...
include <stdio.h>int main(){ int a[10]={1,3,6,8,2,7,9,0,4,5};int i,j;for(i=0;i<10;i++){ for(j=0;j<9-i;j++){ if(a[j]>a[j+1]){ int t=a[j];a[j]=a[j+1];a[j+1]=t;} } } for(i=0;i<10;i++){ printf("%d ",a[i]);} return 0;...

用冒泡法对10个整数由小到大进行排序
include <stdio.h> define number 10 main(){ int i,j,temp,a[10];printf("input 10 numbers:\\n");for(i=0;i<10;i++){ printf("%d number:",i+1);scanf ("%d",&a[i]);} for(j=0;j<9;j++){ for (i=0;i<9-j;i++)if (a[i]>a[i+1]);{ temp=a[i];a[i]...

C语言:用冒泡法从高到低排序10 个数,然后进行反排序
{ int temp,i,j,a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j]<a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} for(i=0;i<10;i++)printf("%d ",a[i]);return 1;} 用冒泡法从小到大排序:int main...

c语言冒泡排序法
(1)基本思想:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。(2)实例:(3)代码解释:include<stdio.h>int main(){int a...

衡阳县19870278873: 用汇编语言实现冒泡排序算法?? -
战孔依替: ;===缓冲区定义例子=== BUF DB '256489713' N EQU $-BUF;===起泡排序代码例子=== lea si,BUF ;缓冲区地址 mov cx,N ;缓冲区中要排序的数值个数 sss_lp1: dec cx jz sss_out push si push cx sss_lp2: mov al,[si] cmp al,[si+1] jc sss_next xchg al,[si+1] mov [si],al sss_next: inc si loop sss_lp2 pop cx pop si jmp sss_lp1 sss_out: ;完成退出处

衡阳县19870278873: 如何使用汇编语言实现冒泡排序 -
战孔依替:内存以BUF单元开始有若干单字节有符号数,编程实现从大到小排序并以十进制输出.code segmentassume cs:codeorg 100h start:jmp begin buf db 3,4,5,0,-1,-2,-3 n dw $-buf begin:push cspop dspush cspop eslea si,bufmov ...

衡阳县19870278873: 汇编语言用“冒泡法”排序 -
战孔依替: 楼主写了那么多,而且格式还有差别,不知道具体是几个 下面用10个举例 DATA SEGMENT DAT DB 20,-10,80,-5,-70,-9,125,-15,0,40 COUNT DB 10,10 DATA ENDS; CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START:MOV ...

衡阳县19870278873: 简述汇编语言冒泡排序的算法 -
战孔依替: data segment;定义数据段org 2000arr db 5,3,4,5,2,3,4,9,6count equ $-arrdata endscode segment;定义代码段assume cs:code,ds:data start:;初始化待排序列lea si,arrmov dx,countFoamin...

衡阳县19870278873: 汇编程序冒泡法 -
战孔依替: 编写冒泡法排序的子程序,很简单,10行左右,即可解决.冒泡法排序程序如下:…… AGN: MOV SI, DI MOV CL, BL AGN2: MOV AL, [SI] CMP AL, [SI + 1] JNC AGN3 XCHG [SI + 1], AL MOV [SI], AL AGN3:…… 楼主应该先给出“”输入4个数字的程序“”、以及“”显示输入的4个数字“”的程序.

衡阳县19870278873: 急求,汇编语言进行冒泡法排序的程序例子!! -
战孔依替: 下面是冒泡法排序的源程序(已改进):dseg segment array db 0feh,86h,95h,21h,90h count equ $-array dseg ends cseg segment assume ds:dseg,cs:cseg start: mov ax,dseg mov ds,ax mov dx,2 loop1: mov cx,count mov si,cx mov bx,cx loop2: ...

衡阳县19870278873: 用汇编语言做冒泡法排序
战孔依替: TITLE BubbleSort Procedure INCLUDE Irvine32.inc .code BubbleSort PROC USES eax ecx esi, pArray:PTR DWORD, Count:DWORD mov ecx,Count dec ecx L1: push ecx mov esi,pArray L2: mov eax,[esi] cmp [esi+4],eax jge L3 xchg eax,[esi+4] mov [esi],eax L3: add esi,4 loop L2 pop ecx loop L1 L4: ret BubbleSort ENDP END

衡阳县19870278873: ARM用汇编语言编写冒泡法排序程序,并把最大,最小数分别存放到R0和R1中 -
战孔依替: 就两个数要排序做啥,按个比较后替换即可啊 设要比较的数为X1 x2 x3,,,,,,,, R0,R1初始为x1 x>r0 就r0=x x一直到全部比较完 中间的结果都不用保存也不用数组

衡阳县19870278873: 汇编语言实现排序 -
战孔依替: 以下是输入20个以下的字符,用冒泡法按从小到大排列输出的程序,希望对你用所帮助: data segment da1 db 20,?,20 dup (0) data ends stack segment stack dw 20 dup (0) stack ends code segment assume cs:code,ds:data,ss:stack start: mov ...

衡阳县19870278873: 汇编语言冒泡法排序cmp ax, a[bx+2]? -
战孔依替: 因为 mov ax,a[bx] 说明a数组是使用word类型的,word类型占两个字节,下一个元素地址应该+2

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网