반응형

본 프로그램은 python 2.7.13에서 제작되었습니다.


부르트 포스를 이용한 내림차순 정렬 코드이다.


시간 복잡도가 O(n^2)이기에 상당히 비추천하는 코드이지만, 


파이썬을 처음 공부하는 입장에서는 내림차순으로 정렬 하는 코드를 한번 쯤 만들어 볼만한 것 같다.


오름차순 정렬을 하고싶었다면 mylist.sort()를 하면 오름차순으로 정렬이 된다.


코드에 대한 설명은 다음과 같다.


이 코드를 알기위해 range라는 내장 함수가 도대체 뭔지부터 이해해야 한다.


for i in range(10)을 하면 range는 다음 값을 return해준다.


-> [0,1,2,3,4,5,6,7,8,9]


즉, 리스트를 반환해주고 있고 그 방식을 이용해 i는 0부터 끝까지, j는 i + 1부터 끝까지라는 개념을


for j in range(len(mylist))[i+1] range를 슬라이싱하여 구현 할 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#-*- coding: utf-8 -*-
 
def brute_sort():
    global mylist
    for i in range(len(mylist)):
        for j in range(len(mylist))[i+1:]:
            if mylist[j] > mylist[i]:
                tmp = mylist[i]
                mylist[i] = mylist[j]
                mylist[j] = tmp
 
mylist = [1,2,3,4,5,6]
 
print brute_sort()
print mylist
 
//                                                       This source code Copyright belongs to Crocus
//                                                        If you want to see more? click here >>
Crocus














반응형