a) 为什么下面的buble排序循环不能与兰登。兰丁?b) 为什么循环计数重复项会变得混乱兰登,兰丁?

2024-04-19 20:57:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用for循环对一组数字进行冒泡排序(见下文)。当我给出N个值时,升序可以很好地工作,但是如果我使用随机.randint创建随机数。代码仍然工作,但忽略所有循环。为什么?我该怎么修?你知道吗

第二个较小的循环是用来计算重复项的-同样它可以很好地与预先设置的N数组-它仍然可以与随机,但秩序变得混乱。为什么?我该怎么修?你知道吗

我想用扁钢()为此绘制条形图。有没有可能兰登。兰丁从1000个不同的数字中抽取10个大小的样本并绘制出来?只有当我所有的数组大小相同并且randonrandint是np.random.randint随机数(10,尺寸=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

Tags: inforsizelen尺寸countnp绘制
1条回答
网友
1楼 · 发布于 2024-04-19 20:57:23

你的代码似乎对我几乎起作用了,只是它未能对第一个条目进行排序。这是因为您的range是从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]

相关问题 更多 >