用于实现存储桶排序的Python程序:是否有更好的方法来创建存储桶?

我已经使用np.empty初始化了存储桶,之后使用np.nan初始化了存储桶。这是更好的方法吗?我不知道如何创建一个真正的空数组!

下面的代码是算法的第一部分。该代码正在运行!

另一个问题:我使用“ for”在存储桶中进行了迭代,这是一个numpy数组。对吗?

 import numpy as np

    class BucketSort():
        def __init__(self,array):
            self.array = array
        def distribution_pass(self):
            bucket = np.empty((10,len(self.array)))
            bucket[:] = np.nan
            #rows =[]
           # cols = []
            for num in array:
                for j in range(bucket.shape[1]):
                    bucket[num % 10, j] = num
                    #rows.append(num%10)
                    #cols.append(j)
                    break
                    print()

            return bucket
        def gathering_pass(self):
            array = []
            self.bucket = BucketSort.distribution_pass(self)
            for i in range(self.bucket.shape[0]):
                for j in range(self.bucket.shape[1]):
                  if not np.isnan(self.bucket[i,j]):
                      #print(self.bucket[i,j])
                      array.append(self.bucket[i, j])

            return array


array = [97,3,100]
bucket = BucketSort(array)
#print(bucket.distribution_pass())
print(bucket.gathering_pass())

Input: [97,3,100]

Output: [100,3,97]

评论