0
我想按降序排序列表,使用冒泡排序但我有两个问题。首先是下面的代码插入一个0作为第一个元素的原因我不明白(我想也许这是数组的错,但不存在,当这种排序不使用,所以我不不知道它从哪里来,第二个问题是这个实现按升序排序,我无法弄清楚如何修复它来做对立面,如果我能够找出零点,就可以做一个简单的交换,假设我有没有被伟大的MASM和不擅长的语言,我不很了解实施各种各样的双重问题MASM气泡排序降序
代码:从主
电话:
push count ; size of the array
push OFFSET list ; the array
call sortList
过程:
sortList Proc
push ebp
mov ebp, esp
mov ecx,[ebp+12]
mov edx,[ebp+8]
bs_o:
xor ebp,ebp
bs_i:
mov eax,DWORD PTR [edx+ebp*4+4]
cmp DWORD PTR [edx+ebp*4],eax
jb @F
xchg eax,DWORD PTR [edx+ebp*4]
mov DWORD PTR [edx+ebp*4+4],eax
@@:
add ebp,1
cmp ebp,ecx
jb bs_i
loop bs_o
pop ebp
retn 8
任何帮助感激。
它似乎省略了最高值 –
我想出了值问题,count值设置为1太高,所以它将数组之后的内存位置(在大多数情况下设置为0)作为排序的一部分。仍然可以使用帮助让它按降序排序 –