0

これは私がやったことですが、うまくいきませんでした:

def min_sorted(xs):
    copy_list= xs
    list=[]
    while copy_list:
        minimum=copy_list[0]
        for i in copy_list:
            if i < minimum:
                minimum = i
            if not i == minimum:    
                list.append(minimum)
    print (list)

これは私がやったことですが、このように機能しませんでした。誰か私のためにチェックしてもらえますか?

ex: xs = [7, 8, 3, 1, 5]

min_sorted([7, 8, 3, 1, 5]) ====> [1, 3, 5, 7, 8]

xs ====>[7, 8, 3, 1, 5]
4

6 に答える 6

2

質問履歴に基づくと、これは宿題のようです。sortedjrd1 が提案したように、使用が許可されていないと仮定します。sorted可能であれば、代わりに必ず使用してください。

選択ソートは、あなたが望むもののように聞こえます。

于 2013-11-09T03:59:13.097 に答える
0

バブルソートは、内側のループでリストを後方に反復し、外側のループで前方に反復しながら、最小値を前面に押し出します。

def min_sorted(xs):
    xsort = []
    for x in xs:
        xsort.append(x)
    i = 0
    while i < len(xsort)-1:
        for j in range(len(xsort)-1, i, -1):
            if xsort[j] < xsort[j-1]:
                y = xsort[j-1]
                xsort[j-1] = xsort[j]
                xsort[j] = y
        i = i + 1
    return xsort
xs = [7,8,3,1,5]
sorted = min_sorted(xs)
print(xs)
print(sorted)

OUTPUT:

[7, 8, 3, 1, 5, 9]
[1, 3, 5, 7, 8, 9]
于 2013-11-09T04:10:12.513 に答える