function x=mysort(x,first,last)
% 快速排序
% y=mysort(x)
% 对数组x进行从小到大排序
% x - 要排序的矩阵
% y - 排序后的矩阵
if nargin==3
error('参数个数错误');
end
if nargin==1
first=1;
last=length(x);
end
key=x(first);
while first<last
while first<last&&x(last)>=key
last=last-1;
end
x(first)=x(last);
while first<last&&x(first)<=key
first=first+1;
end
x(last)=x(first);
end
x(first)=key;
if length(x(1:first-1))>1
x(1:first-1)=mysort(x(1:first-1));
end
if length(x(first+1:end))>1
x(first+1:end)=mysort(x(first+1:end));
end
% 快速排序
% y=mysort(x)
% 对数组x进行从小到大排序
% x - 要排序的矩阵
% y - 排序后的矩阵
if nargin==3
error('参数个数错误');
end
if nargin==1
first=1;
last=length(x);
end
key=x(first);
while first<last
while first<last&&x(last)>=key
last=last-1;
end
x(first)=x(last);
while first<last&&x(first)<=key
first=first+1;
end
x(last)=x(first);
end
x(first)=key;
if length(x(1:first-1))>1
x(1:first-1)=mysort(x(1:first-1));
end
if length(x(first+1:end))>1
x(first+1:end)=mysort(x(first+1:end));
end