用汇编语言实现冒泡排序算法??
3个回答
2013-10-16
展开全部
;===缓冲区定义例子===
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: ;完成退出处
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: ;完成退出处
展开全部
mov就是简单的传送语句啦!LZ问的应该是功能吧。。呵呵首先要知道冒泡排序的原理:把一组数从第一个数开始两两相比。小的在前(从小到大排),否则交换位置你这段代码LOOP1应该是控制循环次数的,LOOP2才是比较大小的!你能给我完整的代码段么?我可以给你解释。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-16
展开全部
public void Accp(int a[]) { //数组的冒泡排序
int n = a.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
int n = a.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询