すべてのPython unit 07-ソートを選択

13293 ワード

一般的な選択ソートアルゴリズム


まちがい

#선택정렬
#입력:리스트a
#출력:없음(입력으로 주어진 a가 정렬됨)

def sel_sort(a):
    n=len(a)
    for i in range(0,n-1): #0부터 n-2번까지 반복
        #i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음

        min_idx=i

        for j in range(i+1,n):
            if a[j]<a[min_idx]:
                min_idx=j
                #찾은 최솟값을 i번 위치로
                #그러니까 아까처럼 리스트를 하나더 만들지 않고 한개 리스트 안에서 요소들의 위치를 바꿔버리면 된다!!
                a[i],a[min_idx]=a[min_idx],a[i]

d=[2,4,5,1,3]

sel_sort(d)

print(d)
        

正解

#선택정렬
#입력:리스트a
#출력:없음(입력으로 주어진 a가 정렬됨)

def sel_sort(a):
    n=len(a)
    for i in range(0,n-1): #0부터 n-2번까지 반복
        #i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음

        min_idx=i

        for j in range(i+1,n):
            if a[j]<a[min_idx]:
                min_idx=j
                #찾은 최솟값을 i번 위치로
                #그러니까 아까처럼 리스트를 하나더 만들지 않고 한개 리스트 안에서 요소들의 위치를 바꿔버리면 된다!!
        a[i],a[min_idx]=a[min_idx],a[i] #이구문이 if문 밖으로 나와야 한다.

d=[2,4,5,1,3]

sel_sort(d)

print(d)
        

降順バージョン

#선택정렬
#입력:리스트a
#출력:없음(입력으로 주어진 a가 정렬됨)
#내림차순정렬
def sel_sort(a):
    n=len(a)
    for i in range(0,n-1): #0부터 n-2번까지 반복
        #i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음

        min_idx=i

        for j in range(i+1,n):
            if a[j]>a[min_idx]: #<를 >게 수정하면 된다.
                min_idx=j
                #찾은 최솟값을 i번 위치로
                #그러니까 아까처럼 리스트를 하나더 만들지 않고 한개 리스트 안에서 요소들의 위치를 바꿔버리면 된다!!
        a[i],a[min_idx]=a[min_idx],a[i] 

d=[2,4,5,1,3]

sel_sort(d)

print(d)
        

余分な好奇心


なぜprint(関数(リスト)を簡単に説明し、通常の選択ソートはprint(d)で終わるのですか?
答え:通常選択ソートには値が返されません.
#선택정렬
#입력:리스트a
#출력:없음(입력으로 주어진 a가 정렬됨)
#내림차순정렬
def sel_sort(a):
    n=len(a)
    for i in range(0,n-1): #0부터 n-2번까지 반복
        #i번 위치부터 끝까지 자료값중 최솟값의 위치를 찾음

        min_idx=i

        for j in range(i+1,n):
            if a[j]>a[min_idx]: #<를 >게 수정하면 된다.
                min_idx=j
                #찾은 최솟값을 i번 위치로
                #그러니까 아까처럼 리스트를 하나더 만들지 않고 한개 리스트 안에서 요소들의 위치를 바꿔버리면 된다!!
        a[i],a[min_idx]=a[min_idx],a[i] 
    return a #이렇게 return 값을 지정하고

d=[2,4,5,1,3]



print(sel_sort(d))#이렇게 출력하면 값이 나온다!!