matlab堆排序

原创 2015年07月06日 18:12:27
function [ A ] = heapsort( A )
%UNTITLED14 Summary of this function goes here
%   Detailed explanation goes here
A=build_max_heap(A);
[m,n]=size(A);
for i=n:-1:2
    temp=A(1);
    A(1)=A(i);
    A(i)=temp;
    n=n-1;
    A=max_heapify(A,n,1);
end
end


function [ A ] = build_max_heap( A )
%UNTITLED12 Summary of this function goes here
%   Detailed explanation goes here
[m,n]=size(A);
for i=floor(n/2):-1:1
    A=max_heapify(A,n,i);


end

function [ A ] = max_heapify( A,n,i )
%UNTITLED11 Summary of this function goes here
%   Detailed explanation goes here
l=left(i);
r=right(i);
if l<=n&&A(l)>A(i)
    largest=l;
else
    largest=i;
end
if r<=n&&A(r)>A(largest)
    largest=r;
end
if largest~=i
    temp=A(i);
    A(i)=A(largest);
    A(largest)=temp;
    A=max_heapify(A,n,largest);
end

function [ pIndex ] = parent( i )
%UNTITLED8 Summary of this function goes here
%   Detailed explanation goes here
pIndex=floor(i/2);


end

end

function [ lIndex ] = left( i )
%UNTITLED9 Summary of this function goes here
%   Detailed explanation goes here
lIndex=2*i;


end

function [ rIndex ] = right( i )
%UNTITLED10 Summary of this function goes here
%   Detailed explanation goes here
rIndex=2*i+1;


end


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【算法分析】排序算法:希尔、归并、快速、堆排序

08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de...

堆排序之Java实现

堆排序算法c语言实现

三、算法_堆排序

堆排序 堆排序介绍 堆是一个完全二叉树:每个节点的值都大于或等于其左右孩子节点的值,称为大顶堆;或每个节点值都小雨等于其左右孩子的值,称为小顶堆。堆排序C#实现-顺序存储:class Progra...

堆排序及其用途

  • 2016-03-25 13:46
  • 214KB
  • 下载

堆排序法.cpp

堆排序 HeapSort

堆排序 HeapSort二叉堆是一组能够用堆有序的完全二叉树排序的元素,并在数组中按照层级存储(不适用数组的一个位置,下标从1开始)!二叉堆可以很好的实现优先队列的基本操作。优先队列是一种抽象的数据结...

堆排序

  • 2014-12-25 21:57
  • 205KB
  • 下载

堆排序算法导论

  • 2013-11-11 23:54
  • 152KB
  • 下载

堆排序

堆排序
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)