全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1701 3
2014-06-25
用R语言可以实现堆排序算法吗?
哪位大神能帮我写一下程序呢?或者有现成的包呢?

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-1-15 16:39:59
完全二叉树啊rpart包吧
详细说明:
http://cran.rstudio.com/web/packages/rpart/rpart.pdf
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-15 17:03:03
不过如果要是Python的话,自己写的话,
#!/usr/bin/python
import sys

def left_child(node):
return node * 2 + 1


def right_child(node):
return node * 2 + 2


def parent(node):
if (node % 2):
return (i - 1) / 2
else:
return (i - 2) / 2


def max_heapify(array, i, heap_size):
l = left_child(i)
r = right_child(i)


largest = i
if l < heap_size and array[l] > array:
largest = l


if r < heap_size and array[r] > array[largest]:
largest = r


if largest != i:
array, array[largest] = array[largest], array
max_heapify(array, largest, heap_size)

def build_max_heap(array):
for i in range(len(array) / 2, -1, -1):
max_heapify(array, i, len(array))

def heap_sort(array):
build_max_heap(array)
for i in range(len(array) - 1, 0, -1):
array[0], array = array, array[0]
max_heapify(array, 0, i)

if __name__ == "__main__":
array = [0, 2, 6, 98, 34, -5, 23, 11, 89, 100, 7]
heap_sort(array)

for a in array:
sys.stdout.write("%d " % a)


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-1-15 18:04:42
DM小菜鸟 发表于 2015-1-15 17:03
不过如果要是Python的话,自己写的话,
#!/usr/bin/python
import sys
太厉害了,谢谢谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

分享

扫码加好友,拉您进群