我知道如何用Java编程,我对python非常陌生。我正在尝试用Python实现HeapSort,但是我无法理解这段代码出错的地方。有人能帮忙吗?
这就是我的实现:
class HeapSort:
def sort(self,list):
self.p = list
self.N = len(list)
for k in range(N/2,1,-1):
sink(k,N)
while N> 1:
exch(1,N)
N -=1
我在编译时出现了一些错误,我无法计算出why...is我的堆.h应该有一个导出类型?
heapsort.c
#include <stdio.h> // standard libraries already included in "list.h"
#include <stdlib.h>
#include "heap.h"
#include "heapsort.h"
void heapSort(int* keys, int numKeys){
heapHndl H = NULL;
H = bui
子类定义的通用部分应该是什么? 我有一个超类,我不想修改排序定义中的泛型部分 public class Sort<T extends Comparable<? super T>> {
public abstract void sort(List<T> thingToSort);
} 我想写 public void HeapSort"<>" extends Sort"<>" {
} 在HeapSort定义的通用部分中应该保留什么 在main中的某个地方 HeapSort sort = new He
我正在使用Java中的这个数组创建和排序堆。我一直在
线程"main“java.lang.ArrayIndexOutOfBoundsException: 42中的异常
在HeapSort.exchange(HeapSort.java:28)
在HeapSort.Max_Heapify(HeapSort.java:22)
在HeapSort.Build_Heap at HeapSort.Sort(HeapSort.java:36)
在HeapSort.main(HeapSort.java:46)
我不知道这个错误是从哪里来的。
public class HeapSort {
我有一个非常奇怪的三参数构造函数的问题,当我尝试运行程序时,visual studio只显示了一个错误:“'Sort.HeapSort‘不包含一个接受3个参数的构造函数11235”。
namespace Sort
{
class HeapSort
{
private int[] A;
private int heapSize;
private int min;
private int max;
Random myRandom = new Random();
HeapS
我有下面的堆排序代码。 heapsort :: (Ord a) => [a] -> [a]
heapsort xs = Heap.toList (Heap.fromList $ xs :: Heap.MinHeap a) 这不能编译,并出现以下错误- mergeLists.hs:32:28: error:
• Couldn't match type ‘a1’ with ‘a’
‘a1’ is a rigid type variable bound by
an expression type signature:
fo
默认heapq是最小队列实现,不知道是否有最大队列的选项?谢谢。
我尝试了在最大堆上使用_heapify_max的解决方案,但是如何处理动态推送/弹出元素?_heapify_max似乎只能在初始化期间使用。
import heapq
def heapsort(iterable):
h = []
for value in iterable:
heapq.heappush(h, value)
return [heapq.heappop(h) for i in range(len(h))]
if __name__ == "__main__"
class HeapSort{
public static void main(String args[]){
int A[]={6,5,4,3,2,1};
HeapSor obj=new HeapSor(6);
obj.Heap_Sort(A);
obj.print(A);
}
}
class HeapSor{
int lenOfArray;
int HeapSize;
HeapSor(int len){
this.lenOfArray=len;
this.HeapSize=len;
这是我被要求做的程序。我已经用一个特定的类型(int)做了,但是用一个对象类型做这件事是相当令人困惑的。
public class HeapSort
{
private Object[] data;
private int partition;
HeapSort(Object[] data); // Class Constructor
HeapSort(int size); // Class Constructor
public Object[] sort() // Sorts the data
publi
我正在用C语言实现Heapsort程序,它与二叉树排序。当我运行这个程序时,在它满足程序中的heapsort函数之前,它是可以的。我也试着调试这一点,但是它在满足heapsort函数时仍然会出错。
在互联网上引用一些算法时,我发现它与我的源代码相似,但它们运行正常,所以我很难找到源代码中的错误
#include <stdio.h>
#define MAX 2100
void downheap(int a[], int n, int k)
{
int i=0;
int temp = a[0];
while (k <= n/2)
{
我为HeapSort编写了以下代码,它运行良好:
class Heap(object):
def __init__(self, a):
self.a = a
def heapify(self, pos):
left = 2*pos + 1
right = 2*pos + 2
maximum = pos
if left < len(self.a) and self.a[left] > self.a[maximum]:
我在调用不同类中的方法时遇到了问题。此main方法位于一个名为lab14的类中,而heapSort()方法位于另一个名为HeapSort的类中。这两个类都在默认包中。我收到错误消息"The method heapSort(Vector undefined for the type Lab14)“,我不明白为什么,请帮助我。
以下是实验14类中的主要方法
public static void main(String args[]) {
Heap myheap = new Heap();
Vector<StudentGPA> vec = new Vector(
我试图在java中实现heapSort,但在执行后没有得到排序列表。你能告诉我我在这里做错了什么吗?我创建了一个方法Heapsort来对调用堆本身的堆进行排序。一旦堆被调用,它就会给我一个堆树,其中包含顶部最大的元素。我认为我的交流或进一步的过程是不正常的。这里面怎么了?
public class HeapSort
{
public static void main(String args[])
{
int a[]=new int[]{30,100,20,80,40,90,50,60};
for(int i=0;i<a.length;i++)
我正在尝试对我的JTable扩展AbstractTableModel进行修改。我创建了一个堆来插入所有的文档,然后我在堆数组上应用了一个heapSort,所以这个有序数组应该是我的TableModel数据。看起来是这样的:
public class ModeloTabla extends AbstractTableModel {
private Heap heap;
private Nodo[] datos;
@Override
public int getRowCount() {
return heap.getNumNodos();
我想知道我如何统计我在rosettacode上得到的HeapSort进行的比较的次数?我试图通过添加一个变量来计算它,每次调用比较方法时,这个变量都会递增。但不知何故,我得不到正确的结果。我想我必须以某种方式覆盖比较方法,并使用getter和setter来递增count变量。我会非常感谢你的提示……
using System;
using System.Collections.Generic;
using System.Text;
public class Program
{
public static void HeapSort<T>(T[] array)
{
我试图用java写一个heapsort方法,但它的工作方式并不完全像我想要的那样:
public class HeapSort {
private static int n;
private static void swap(int[] A, int a, int b)
{
int tmp = A[a];
A[a] = A[b];
A[b] = tmp;
}
private static void insert(int[] A, int i)
{
int left = i *
我试图在Java中使用compareTo,但是它总是给我一个错误。然后我实现了
public interface Comparable<T> {
int compareTo(T o);
}
但还是帮不上忙。编译器一直建议我使用私有的void heap_Rebuild(int )--这里是我的代码:
private void heap_Rebuild(T[] ar, int root, int size) {
int child =2*root+1;
if(child<size){
int rightChild=child+1;
我对C++/算法比较陌生,我不太确定我的heapSort函数有什么问题。鉴于数字(6,2,9,1,5),我输出以下不正确的数字:
9
4197040
2
4196422
6
谢谢你找我。
#include <iostream>
using namespace std;
void heapSort(int arr [], int size);
void reheapDown(int arr[], int root, int bottom);
void swap(int & num1, int & num2);
int main()
{
int ar
我正在尝试计算这个堆排序算法中的比较次数:
import random
import time
#HeapSort Algorithm
def heapify(arr, n, i):
count = 0
largest = i
l = 2 * i + 1
r = 2 * i + 2
if l < n and arr[i] < arr[l]:
largest = l
if r < n and arr[largest] < arr[r]:
largest = r
我正在尝试从编译排序库
直接链接到图书馆:
当我运行时,编译程序会说:
gcc -g -O -DCUTOFF=15 -c sorttest.c
In file included from sorttest.c:15:
sort.h:66: error: conflicting types for ‘heapsort’
/usr/include/stdlib.h:301: error: previous declaration of ‘heapsort’ was here
make: *** [sorttest.o] Error 1
有人能帮忙解决这个问题吗?
我一直试图实现堆排序函数,但它按相反的顺序对数组进行排序。奇怪的是,如果我使用unshift或push并不重要,元素总是会被反印。
#!/usr/bin/perl -w
use 5.014;
no warnings 'recursion';
sub heapify{
my $index = pop @_;
my $larger;
unless ($index > int(@_/2-1))
{
my $left = 2 * $index + 1;
my $right = 2 * $index + 2;
if($right <
因此,简单地说,我正在用java开发一个代码,用于将一个20个大小的数组划分为4个部分,其中这4个线程将一起运行以堆排序5元素(Thread 1排序索引0-4,线程2排序索引5-9等等),最后将它们合并到合并排序技术中。合并排序工作非常好,所以我不包括它。但是堆排序功能无法提供正确的答案。线程保持在数组的14到19的索引中旋转。我在这里做错什么了吗?
class heapsort
{
private static int[] a;
private static int i;
private static int left;
private static int
我正在为一个任务实现堆排序。我们必须像她在课堂上用她的伪码那样做这件事,否则我们就得不到学分。
I得到一个运行时错误:变量'heapArray‘周围的heapArray堆栈被损坏了。我玩调试器,但仍然找不出是什么导致了错误。我确信这与HeapSort()函数中的For循环有关。有人能帮忙吗?
void HeapSort(int heapArray[])
{
int heap_size = SIZE;
int n = SIZE;
int temp;
Build_Max_Heap(heapArray);//function not implement
是否允许模板的参数因类的不同功能而不同?例如,如果我有一个类:
template <class T, class Comparator>
class example {
public:
void shift(std::vector<T>& a, T low, T, high);
void heapSort(std::vector<T>& a, T size, Comparator comp);
};
我可以这么做吗?
template <class T>
void example::shift(std::vector<T&