为什么这个冒泡排序算法在Javascript中有效而在Python中无效?
在Javascript中,您可以使用这样的数组分类器为什么这个冒泡排序算法在Javascript中有效而在Python中无效?,javascript,python,Javascript,Python,在Javascript中,您可以使用这样的数组分类器 function sorter(array) { var done = false while (!done) { for (i=0; i < array.length; i++) { done = true; if (array[i-1] > array[i]) { done = false; var tmp = array[i-1]; ar
function sorter(array) {
var done = false
while (!done) {
for (i=0; i < array.length; i++) {
done = true;
if (array[i-1] > array[i]) {
done = false;
var tmp = array[i-1];
array[i-1] = array[i];
array[i] = tmp;
}
}
}
return array;
}
var index = [3, 8, 2, 4, 213, 5, 23, 75,23, 43];
sorter(index);
console.log(index);
是的,问题是您对Python了解不够。您的循环限制错误:
for i in range(len(array)):
在这个循环的第一次迭代中,i=0,所以i-1是-1
数组[-1]是列表的最后一个元素。因此,每次重新开始时,都会将列表中的最后一个元素与第一个元素交换,并且必须将其冒泡回末尾,永远不会结束
对程序的任何简单跟踪都会向您显示效果。请看这个以寻求帮助
修理
for i in range(1, len(array)):
是的,问题是您对Python了解不够。您的循环限制错误:
for i in range(len(array)):
在这个循环的第一次迭代中,i=0,所以i-1是-1
数组[-1]是列表的最后一个元素。因此,每次重新开始时,都会将列表中的最后一个元素与第一个元素交换,并且必须将其冒泡回末尾,永远不会结束
对程序的任何简单跟踪都会向您显示效果。请看这个以寻求帮助
修理
for i in range(1, len(array)):
或者您可以这样做:
def sorter(array):
a = array.sort()
return a
index = [2, 35, 6, 4, 8, 7]
sorter(index)
print(index)
或者您可以这样做:
def sorter(array):
a = array.sort()
return a
index = [2, 35, 6, 4, 8, 7]
sorter(index)
print(index)
Javascript代码也包含此错误,因此这修复了问题,但没有完全解释问题。谢谢,我们都只是在学习:)Javascript代码也包含此错误,因此这修复了问题,但没有完全解释问题。谢谢,没有痛苦的感觉,我们都只是在学习:)我知道这是存在的。然而,我想尝试使用一个没有这个函数的算法。我知道这是存在的。然而,我想尝试使用一个没有这个函数的算法。