这个代码正确吗def bubble(list_a): lenth = len(list_a)-2 for x in range(length): for y in range(length-x): if list_a[y] > list_a[y+1]: temp = list_a[y] list_a[y] = list_a[y+1] list_a[y+1]=temp return list_a print(bubble(list_a))
时间: 2023-06-09 17:08:29 浏览: 97
抱歉,这段代码有错误。首先,在第一行中应该是 `length` 而不是 `lenth`;其次,在第 4 行中将 `length` 改为 `lenth`;最后,第 5 行中的 `y 1` 应该是 `y+1`。正确的代码如下:
```
def bubble(list_a):
length = len(list_a) - 1
for x in range(length):
for y in range(length - x):
if list_a[y] > list_a[y+1]:
temp = list_a[y]
list_a[y] = list_a[y+1]
list_a[y+1] = temp
return list_a
list_a = [3, 2, 1, 5, 4]
print(bubble(list_a))
```
相关问题
def bouble(list_a): lenth = len(list_a)-2 for x in range (0,lenth) if list[x]<list[x+1] temp = list[x] list[x]=list[x+1] list[x+1]=temp return list_a print(list_a)有错吗
有错。应该是:
def bubble(list_a):
length = len(list_a)-1
for x in range(length):
for y in range(length-x):
if list_a[y] > list_a[y+1]:
temp = list_a[y]
list_a[y] = list_a[y+1]
list_a[y+1]=temp
return list_a
print(bubble([3,2,1]))
首先,函数名错误,应该是 bubble 而不是 bouble。其次,在 for 循环中,没有对 x 进行迭代,只有对 y 进行迭代,应该在外部的循环中对 x 进行迭代。最后,if 判断中应该是 list_a[y] < list_a[y+1],而不是 list[x] < list[x+1],并且需要进行交换操作。
import random def bubble(lst): rd=len(lst) for i in range(rd): for j in range(rd-1): if lst[j]>lst[j+1]: lst[j],lst[j+1]=lst[j+1],lst[j] return lst def binary(target,lst): left=0 right=len(lst)-1 while left<=right: mid=(left+right)//2 if target==lst[mid]: return mid elif target>lst[mid]: left=mid+1 else: right=mid-1 else: return 'NOT FOUND' def main(target,lst): sorted_lst=bubble(lst) result=binary(target,sorted_lst) print('targeresult引是',result) if __name__=='__main__': lst=random.sample(range(1000),k=200) main(60,lst)
以下是将你的程序转换为类的示例:
```python
import random
class BinarySearch:
def __init__(self):
self.lst = []
def bubble_sort(self):
rd = len(self.lst)
for i in range(rd):
for j in range(rd-1):
if self.lst[j] > self.lst[j+1]:
self.lst[j], self.lst[j+1] = self.lst[j+1], self.lst[j]
def binary_search(self, target):
left = 0
right = len(self.lst) - 1
while left <= right:
mid = (left + right) // 2
if target == self.lst[mid]:
return mid
elif target > self.lst[mid]:
left = mid + 1
else:
right = mid - 1
else:
return 'NOT FOUND'
def main(self, target):
self.lst = random.sample(range(1000), k=200)
self.bubble_sort()
result = self.binary_search(target)
print('目标结果是', result)
# 创建一个类的实例
binary_search = BinarySearch()
# 调用类的方法
binary_search.main(60)
```
在这个示例中,我们将原来的函数 `bubble`、`binary` 和 `main` 封装在一个名为 `BinarySearch` 的类中。我们将原来的列表 `lst` 移到类的属性中,并在方法中使用 `self` 来引用该属性。通过创建类的实例,我们可以调用类内部定义的方法。在上述示例中,我们创建了一个名为 `binary_search` 的实例,并调用了名为 `main` 的方法,传入目标值 `60`。你可以根据需要定制类的属性和方法。
阅读全文