汇编语言——快速排序
生活随笔
收集整理的這篇文章主要介紹了
汇编语言——快速排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
匯編語言——快速排序
為了課設寫得代碼,在這作為記錄,原理就不多敘述,代碼供參考。
include vcio.inc include io32.inc .data array dword 61,33,48,82,72,11,25,48 flag dword ? i dword ? j dword ? s dword 0 t dword ? partI dword ? msg4 byte " , ",0 res byte "排序結果如下 ",13,10,0.code main procmov eax,lengthof arraydec eaxpush spush eaxcall QuickSort ;QuickSort(0,length-1)mov eax,offset rescall dispmsgcall showArrayexit 1 main endpPartition proc ;Partition(i,j)mov eax,imov esi,jmov ebx,array[eax * (type array)]mov flag,ebx ;flag=arr[i]mov ebx,0.while(eax<esi) ;while(i<j)mov ebx,flag.while(eax<esi && array[esi * (type array)]>=ebx) ;while(i<j && arr[j]>=flag)dec j ;j--dec esi.endw.if(eax<esi) ;if(i<j)mov ecx,array[esi * (type array)] ;mov array[eax * (type array)],ecx ;arr[i]=arr[j]inc i ;i++inc eax.endifmov ebx,flag.while(eax<esi && array[eax * (type array)]<=ebx) ;while(i<j && arr[i]<=flag)inc i ;i++inc eax.endw.if(eax<esi) ;if(i<j)mov ecx,array[eax * (type array)] mov array[esi * (type array)],ecx ;arr[j]=arr[i]dec j ;j--dec esi.endif.endwmov ebx,flagmov array[eax * (type array)],ebxmov partI,eax ;partI中存放結果call showArray ret Partition endpQuickSort proc ;QuickSort(s,t)push ebpmov ebp,espmov ecx,[ebp+12]mov s,ecxmov edx,[ebp+8]mov t,edx.if(ecx<edx) ;if(s<t)mov i,ecxmov j,edx call Partition ;Partition(s,t)mov ebx,partI ;獲取結果push smov edi,partI.if(edi>0)dec partIpush partIinc partI.elsepush partI.endifcall QuickSort ;QuickSort(s,partI-1)inc partIpush partIpush [ebp+8]call QuickSort ;QuickSort(partI+1,t).endifpop ebpret 8 QuickSort endpshowArray procmov esi,0.while(esi<lengthof array)mov eax,array[esi*(type array)]inc esicall dispsidmov eax,offset msg4call dispmsg.endwcall dispcrlfret showArray endpend main運行結果
總結
以上是生活随笔為你收集整理的汇编语言——快速排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python属于汇编语言还是高级语言_p
- 下一篇: 5分钟理解信息熵