码迷,mamicode.com
首页 > 其他好文 > 详细

Matlab带比较方法的快排

时间:2018-06-05 13:19:46      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:mda   div   atl   排列   function   end   快排   for   大小   

首先是主方法QUCIKSORT:(从小到大排列)

function [A]=QUICKSORT(A,Low,high,mdat)
set(0,RecursionLimit,1000)
if Low<high
    [A,w]=SPLITION2(A,Low,high,mdat);
    A=QUICKSORT(A,Low,w-1,mdat);
    A=QUICKSORT(A,w+1,high,mdat);
end

function [A,w]=SPLITION2(A,Low,high,mdat)
i=Low;
x=A(1,Low);
for j=Low+1:high
    %if A(1,j)<=x
    if cmpbig(A(1,j),x) == 1
        i=i+1;
        if i~=j;
            k=A(1,i);
            A(1,i)=A(1,j);
            A(1,j)=k;
            clear k;
        end
    end
end
k=A(1,i);
A(1,i)=A(1,Low);
A(1,Low)=k;
clear k;
w=i;

而后,只需要再写一个cmpbig方法来完成两个量之间的比较大小功能即可。

Matlab带比较方法的快排

标签:mda   div   atl   排列   function   end   快排   for   大小   

原文地址:https://www.cnblogs.com/zinyy/p/9139140.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!