首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >气泡排序前四对列表

气泡排序前四对列表
EN

Stack Overflow用户
提问于 2022-04-19 22:47:35
回答 2查看 104关注 0票数 0

如何使用冒泡排序,但只对列表的前4对进行排序呢? 3,5,7,2,7,9,3,4,5,8

代码语言:javascript
复制
def bubbleSort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]

arr = [5, 3, 9, 7, 2, 7, 3, 4, 5, 8]
bubbleSort(arr)
 
for i in range(len(arr)):
   print("%d" % arr[i], end=" ")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-20 11:32:02

如果您想在4次掉期之后停止,最简单的方法可能是数一数您做了多少次,并在达到极限时退出这类交易;如下所示:

代码语言:javascript
复制
def bubble_sort(arr, max_swaps=-1):
    if max_swaps == 0:
        return
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
                max_swaps -= 1
                if max_swaps == 0:
                    return

arr = [5, 3, 9, 7, 2, 7, 3, 4, 5, 8]
bubble_sort(arr, 4)

for i in range(len(arr)):
   print(arr[i], end=" ")
print()
票数 0
EN

Stack Overflow用户

发布于 2022-09-07 05:00:55

您可以尝试这样做:(对前n个元素进行排序)

bubbleSort(arr,k):

代码语言:javascript
复制
"""
argument arr is list, k is int
store result in res
"""

res = 0
l = len(arr[:k])

for i in range(l-1):
    print(arr[i], end=' ')
    for j in range(l-1):
        if arr[j] > arr[j+1]:
            arr[j], arr[j+1] = arr[j+1], arr[j]

print()
print(arr)
res = arr[0] + arr[-1]

print(res)/return res

=======================================

投入:

arr = 64、34、25、12、22、11、90

K=4

=================================

OutPuts:

64 25 34

12、25、34、64、22、11、90

102

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71932145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档