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)作爲排序的一部分。仍然可以使用幫助讓它按降序排序 –