Python a) 为什么下面的buble排序循环不能与randon.randint一起工作?b) 为什么使用random.randint循环计数重复项会变得混乱?

Python a) 为什么下面的buble排序循环不能与randon.randint一起工作?b) 为什么使用random.randint循环计数重复项会变得混乱?,python,Python,我想用for循环对一组数字进行冒泡排序,如下所示。当我给出N个值时,升序可以很好地工作,但是如果我使用random.randint创建随机数,升序就不起作用了。代码仍然有效,但同时忽略循环。为什么?我怎样才能修好它 第二个较小的循环是用来计算重复项的——它同样适用于预设的N数组——它仍然适用于随机项,但顺序变得混乱。为什么?我怎样才能修好它 我想使用plt.bar为这个绘制条形图。是否可以将randon.randint设置为10大小,从1000个不同的数字中进行采样并绘制?仅当我的所有数组大小相

我想用for循环对一组数字进行冒泡排序,如下所示。当我给出N个值时,升序可以很好地工作,但是如果我使用random.randint创建随机数,升序就不起作用了。代码仍然有效,但同时忽略循环。为什么?我怎样才能修好它

第二个较小的循环是用来计算重复项的——它同样适用于预设的N数组——它仍然适用于随机项,但顺序变得混乱。为什么?我怎样才能修好它

我想使用plt.bar为这个绘制条形图。是否可以将randon.randint设置为10大小,从1000个不同的数字中进行采样并绘制?仅当我的所有数组大小相同且randonrandint为np.random.randint10,size=10[采样和数字的大小相同]时,它才起作用

result=[0]*10
#N= [1,7,5,4,7,7,1,4,4]
#N = np.random.randint(1,1000,10)

N=np.random.randint(10, size=10)

#N=np.random.randint(1000, size=10)

for i in range(len(N)):
 swapped = True
 count = swaps = 0
 count = 0
while swapped:
 count += 1
 swapped = False
 for i in range(1, len(N)-1):
  if N[i]>N[i+1]:
   temp = N[i]
   N[i] = N[i+1]
   N[i+1] = temp
   #swaps += 1
   swapped = True

print N

for i in N:
 result[i] += 1

你的代码似乎对我几乎有效,只是它未能对第一个条目进行排序。这是因为您的范围从1开始,而不是从0开始:

import numpy as np

N=np.random.randint(10, size=10)
print N

for i in range(len(N)):
    swapped = True
    count = swaps = 0
    count = 0

    while swapped:
        count += 1
        swapped = False
        for i in range(0, len(N)-1):
            if N[i]>N[i+1]:
                temp = N[i]
                N[i] = N[i+1]
                N[i+1] = temp
                #swaps += 1
                swapped = True

print N

# Add one to all elements in numpy array

N += 1
print N
提供以下可能的输出:

[0 6 6 0 6 3 7 8 7 6]
[0 0 3 6 6 6 6 7 7 8]
[1 1 4 7 7 7 7 8 8 9]

你的缩进完全错了,很难说你的代码应该是什么样子。@BrenBarn告诉了我。提供的代码充其量是模棱两可的。我已经更改了它。好点了吗?不太好。每个缩进级别使用4个空格。我按照网站的建议使用了ctrl-t