失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MATLAB输入排序代码 matlab快速排序算法实现

MATLAB输入排序代码 matlab快速排序算法实现

时间:2019-04-25 04:59:18

相关推荐

MATLAB输入排序代码 matlab快速排序算法实现

只有C中的qsort存在,调用比较麻烦,其实在数据结构中,快速排序法是经典排序之一,上网搜了一下简介,把对应的VC程序改了一下,做成了下面的matlab代码:

%快速排序法

%基本的思想:通过一趟排序将待排的记录分割成独立的两部分,

%其中前一部分的 记录的关键字均比另一部分记录的关键字小,

%再分别对两组记录进行递归分割,达到排序的目的

%平均时间复杂度为O(log2(n))

function qsort_main()

A = rand(100, 1) * 30;

data = A; low = 1; high = 100;

data = QSort(data, low, high)

A

functiondata = QSort(data, low, high)

if nargin == 1

low = 1;

high = length(data);

end

if(low

[data pivokey] = qPartition(data, low, high);

data = QSort( data, low, pivokey - 1 );

data = QSort( data, pivokey + 1, high );

end

% 将数组分成两部分,前一部分的值均比后一部分值小

% 返回分界点

function [data low] = qPartition(data, low, high)

if nargin == 1

low = 1;

hight = length(data);

end

pivokey=data(low);

while low < high

while low < high & data(high) >= pivokey

high = high - 1;

end

c = data(low); d = data(high);

data(low) = d; data(high) = c;

while low < high & data(low) <= pivokey

low = low + 1;

end

c = data(low); d = data(high);

data(low) = d; data(high) = c;

end

可以分别保存,也可以保存成一个文件,直接使用,效果挺好的

0

如果觉得《MATLAB输入排序代码 matlab快速排序算法实现》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。