在哪里插入重试循环语句?

德雷·曼达尼(Drey Mandani)

因此,我在这里几乎完成了代码,用户输入了他/她未排序的数组列表中的元素数,但是剩下的唯一要做的就是在此代码中添加“是否要重试”循环语句。

def bubblesort(array):
loop1 = 1
for i in range(len(array)):
    for j in range(0, len(array) - i - 1):
        print('Loop', loop1 ,':')
        if array[j] > array[j+1]:
            (array[j], array[j+1]) = (array[j+1], array[j])
        print(array)
        loop1 = loop1 + 1
def selectionsort(array, size):
loop1 = 1;
for step in range(size):
    min_idx = step
    print('Loop1', loop1, ':')
    for i in range(step + 1, size):
        if array[i] < array[min_idx]:
            min_idx = 1
        (array[step], array[min_idx]) = (array[min_idx], array[step])
        loop1 = loop1 + 1
        print(array)
def insertionsort(arr):
for i in range(1, len(arr)):
    key = arr[i]
    j = i-1
    while j >= 0 and key < arr[j]:
        arr[j+1] = arr[j]
        j -= 1
        arr[j+1] = key
def merge(arr, l, m, r): 
n1 = m - l + 1
n2 = r- m 

L = [0] * (n1) 
R = [0] * (n2) 

for i in range(0 , n1): 
    L[i] = arr[l + i] 

for j in range(0 , n2): 
    R[j] = arr[m + 1 + j]
    
i = 0     
j = 0     
k = l
while i < n1 and j < n2 : 
    if L[i] <= R[j]: 
        arr[k] = L[i] 
        i += 1
    else: 
        arr[k] = R[j] 
        j += 1
    k += 1

while i < n1: 
    arr[k] = L[i] 
    i += 1
    k += 1

while j < n2: 
    arr[k] = R[j] 
    j += 1
    k += 1

def mergeSort(arr,l,r): 
if l < r: 
    m = (l+(r-1))//2

    mergeSort(arr, l, m) 
    mergeSort(arr, m+1, r) 
    merge(arr, l, m, r) 
def quicksort(array1):
if len(array1) <= 1:
    return array1
else:
    pivot = array1.pop()
greater_items = []
lesser_items = []
for item in array1:
    if item > pivot:
        greater_items.append(item)
    else:
        lesser_items.append(item)
return quicksort(lesser_items) + [pivot] + quicksort(greater_items)
def shellsort(array,n):
loop1 = 1
for i in range(len(array)):
    print('Loop', loop1)
    interval = n // 2
    while interval > 0:
        print(array)
        for i in range(interval, n):
            temp = array[i]
            j = i
            while j >= interval and array[j - interval] > temp:
                array[j] = array[j - interval]
                j -= interval
            array[j] = temp
            interval //= 2
            loop1 += 1
lst = []
num_elem = int(input('Enter the number of elements:'))
for i in range(0, num_elem):
    elem = int(input('Enter your element/s:'))
    lst.append(elem)
print('Array contains:', lst)
print('Sorting Menus:')
print('[A] Bubble Sort')
print('[B] Insertion Sort')
print('[C] Merge Sort')
print('[D] Quick Sort')
print('[E] Selection Sort')
print('[F] Shell Sort')
print('[Q] Quit Program')
choice = str(input('Enter input:'))

if choice == 'a':
    print('Original unsorted array:', lst)
    bubblesort(lst)
    print('Bubble Sorted Array in Ascending Order:')
    print(lst)
elif choice == 'b':
    insertionsort(lst)
    print('Insertion Sort in Ascending Order:')
    for i in range(len(lst)):
        print(lst[i], end=',')
elif choice == 'c':
    n = len(lst)
    print ("Given array is")
    for i in range(n):
        print ("%d" %lst[i]),
    mergeSort(lst,0,n-1)
    print ("\n\nSorted array is")
    for i in range(n):
        print ("%d" %lst[i]),
elif choice == 'd':
    print('Quick Sorting in Ascending Order:')
    print(quicksort(lst))
elif choice == 'e':
    print('Original Unsorted Array:')
    print(lst)
    size = len(lst)
    selectionsort(lst, size)
    print('Selection Sorted Array in Ascending Order:')
    print(lst)
elif choice == 'f':
    print('Unsorted Array:', lst)
    size = len(lst)
    shellsort(lst, size)
    print('Shell Sorted Array in Ascending Order', lst)
elif choice == 'q':
    print('Exiting Program...')
    exit()
else:
    print('Invalid Choice! Please retype a proper listing menu.')


     

我可以在哪里插入重试循环语句,使我从用户为我的未排序数组列表输入的开头开始?

装饰尘土

尝试这个

def bubblesort(array):
    loop1 = 1
    for i in range(len(array)):
        for j in range(0, len(array) - i - 1):
            print('Loop', loop1 ,':')
            if array[j] > array[j+1]:
                (array[j], array[j+1]) = (array[j+1], array[j])
            print(array)
            loop1 = loop1 + 1
def selectionsort(array, size):
    loop1 = 1
    for step in range(size):
        min_idx = step
        print('Loop1', loop1, ':')
        for i in range(step + 1, size):
            if array[i] < array[min_idx]:
                min_idx = 1
            (array[step], array[min_idx]) = (array[min_idx], array[step])
            loop1 = loop1 + 1
            print(array)
def insertionsort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i-1
        while j >= 0 and key < arr[j]:
            arr[j+1] = arr[j]
            j -= 1
            arr[j+1] = key
def merge(arr, l, m, r): 
    n1 = m - l + 1
    n2 = r- m 

    L = [0] * (n1) 
    R = [0] * (n2) 

    for i in range(0 , n1): 
        L[i] = arr[l + i] 

    for j in range(0 , n2): 
        R[j] = arr[m + 1 + j]
        
    i = 0     
    j = 0     
    k = l
    while i < n1 and j < n2 : 
        if L[i] <= R[j]: 
            arr[k] = L[i] 
            i += 1
        else: 
            arr[k] = R[j] 
            j += 1
        k += 1

    while i < n1: 
        arr[k] = L[i] 
        i += 1
        k += 1

    while j < n2: 
        arr[k] = R[j] 
        j += 1
        k += 1

def mergeSort(arr,l,r): 
    if l < r: 
        m = (l+(r-1))//2

        mergeSort(arr, l, m) 
        mergeSort(arr, m+1, r) 
        merge(arr, l, m, r) 

def quicksort(array1):
    if len(array1) <= 1:
        return array1
    else:
        pivot = array1.pop()
    greater_items = []
    lesser_items = []
    for item in array1:
        if item > pivot:
            greater_items.append(item)
        else:
            lesser_items.append(item)
    return quicksort(lesser_items) + [pivot] + quicksort(greater_items)

def shellsort(array,n):
    loop1 = 1
    for i in range(len(array)):
        print('Loop', loop1)
        interval = n // 2
        while interval > 0:
            print(array)
            for i in range(interval, n):
                temp = array[i]
                j = i
                while j >= interval and array[j - interval] > temp:
                    array[j] = array[j - interval]
                    j -= interval
                array[j] = temp
                interval //= 2
                loop1 += 1

def host():                
    lst = []
    num_elem = int(input('Enter the number of elements:'))
    for i in range(0, num_elem):
        elem = int(input('Enter your element/s:'))
        lst.append(elem)
    print('Array contains:', lst)
    print('Sorting Menus:')
    print('[A] Bubble Sort')
    print('[B] Insertion Sort')
    print('[C] Merge Sort')
    print('[D] Quick Sort')
    print('[E] Selection Sort')
    print('[F] Shell Sort')
    print('[Q] Quit Program')
    choice = str(input('Enter input:'))

    if choice == 'a':
        print('Original unsorted array:', lst)
        bubblesort(lst)
        print('Bubble Sorted Array in Ascending Order:')
        print(lst)
    elif choice == 'b':
        insertionsort(lst)
        print('Insertion Sort in Ascending Order:')
        for i in range(len(lst)):
            print(lst[i], end=',')
    elif choice == 'c':
        n = len(lst)
        print ("Given array is")
        for i in range(n):
            print ("%d" %lst[i]),
        mergeSort(lst,0,n-1)
        print ("\n\nSorted array is")
        for i in range(n):
            print ("%d" %lst[i]),
    elif choice == 'd':
        print('Quick Sorting in Ascending Order:')
        print(quicksort(lst))
    elif choice == 'e':
        print('Original Unsorted Array:')
        print(lst)
        size = len(lst)
        selectionsort(lst, size)
        print('Selection Sorted Array in Ascending Order:')
        print(lst)
    elif choice == 'f':
        print('Unsorted Array:', lst)
        size = len(lst)
        shellsort(lst, size)
        print('Shell Sorted Array in Ascending Order', lst)
    elif choice == 'q':
        print('Exiting Program...')
        exit()
    else:
        print('Invalid Choice! Please retype a proper listing menu.')
    
    choice = input('Would you like to retry [Y]/[N]')
    if choice.lower()=='y':
        host()
    else:
        print('Exiting Program...')
        exit()

host()


本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

发生超时错误时如何重试循环:在哪里添加trycatch或withTimeout

来自分类Dev

在哪里插入JScrollPane?

来自分类Dev

在哪里插入JScrollPane?

来自分类Dev

循环在哪里?

来自分类Dev

SQL Select语句在哪里

来自分类Dev

选择计数在哪里语句

来自分类Dev

我在哪里放置if语句?

来自分类Dev

Python:if-endif语句在哪里结束?

来自分类Dev

LINQ查询中的if语句在哪里

来自分类Dev

“类型”语句的正确位置在哪里?

来自分类Dev

IF语句在哪里(codeigniter活动记录)

来自分类Dev

C标准在哪里定义else if语句?

来自分类Dev

如果子句中的语句在哪里

来自分类Dev

我在哪里放置 WHERE 语句?

来自分类Dev

插入符号(^)是什么,在哪里定义?

来自分类Dev

Clojure循环中的尾巴位置在哪里?

来自分类Dev

PyQt / PySide事件循环在哪里运行?

来自分类Dev

在哪里将“删除”放入循环

来自分类Dev

在“ for”循环中在哪里捕获异常?

来自分类Dev

在哪里将“删除”放入循环

来自分类Dev

内部循环时在哪里放置completionHandler?

来自分类Dev

无限循环发生在哪里?

来自分类Dev

我的 SQL 语句与 LinqPad SQL 语句。区别在哪里?

来自分类Dev

Corda:如何/在哪里可以尝试配置数据库连接重试

来自分类Dev

在哪里可以找到PostgreSQL中的sql语句日志?

来自分类Dev

异步/等待中的return语句在哪里

来自分类Dev

R:错误在哪里:if语句跨越多列

来自分类Dev

if else语句和打印的问题出在哪里?

来自分类Dev

嵌套的SQL AND OR语句失败。我的错误在哪里?