Sunday, February 28, 2016

Insertion Sort in Python.

Insertion sort is somehow difficult when I wrote code from only logic images

this is not optimized Insertion sort 

I will optimize and update sort code


arr = [5,2,3,7,1,4]

def swap(arr, i, j):
    temp = arr[i]
    arr[i] = arr[j]
    arr[j] = temp

def insertionSort(arr):
    for i in range(1, len(arr)):
        index= i
        print("index : " + str(i))
        while index!=0:
            if arr[index] < arr[index-1]:
                temp = arr[index]
                arr[index]= arr[index-1]
                arr[index-1] = temp
                index = index-1                print(arr)
            else :
                break
insertionSort(arr)
print(arr)


bubble Sort in Python

this is second weeks in algorithm study,

I want learn python and study basic algorithm.

this time I studied Bubble sort.
this time complexity is always O(N^2).
next time I will rewrite optimized Bubble sort  

arr =  [5, 1, 4, 2, 8]

def swap(arr, a, b):
    temp = arr[a];
    arr[a] = arr[b];
    arr[b] = temp;

def bubblesort(arr):
    for i in range(len(arr)) :
        print( str(i+1) + " 번재 passing");
        for j in range(len(arr)-1):
            if arr[j] > arr[j+1] :
                swap(arr, j, j+1);
                print(arr)


bubblesort( arr);
print("result : ")
print(arr)

Sunday, February 21, 2016

This is a selection sort algorithm

This time I attended algorithm study group using geeksforgeeks hompage.
this is just start and review algorithm basic.
I hope to study this steadily .

If you have question about selection sort. reply~!
time complexity O(n2)

arr = [5,2,3,7,1,4]
def selectionSort(arr):
    for i in range(len(arr)-1):
        print(i)
        minimum = arr[i]
        for j in range(i+1, len(arr)):
            if arr[j] < minimum:
                minimum = arr[j]
                swap(arr, i, j)
                print(arr);

def swap(arr, i, j):
    temp = arr[i]
    arr[i] = arr[j]
    arr[j] = temp

def selectionSortOnlyOneSwap(arr):
    for i in range(len(arr)-1):
        print(i)

        minimum = arr[i]
        minposition = i
        for j in range(i+1, len(arr)):
            if arr[j] < minimum:
                minimum = arr[j]
                minposition = j

        if minposition != i:
            swap(arr, i, minposition)

        print(arr)

selectionSort(arr)
print(arr)
print("only one time swap")

arr = [5,3,2,7,1,4]
print(arr)
selectionSortOnlyOneSwap(arr)

Wednesday, February 17, 2016

Problem 539 Odd Elimination~!

1■1
2■■2
3■■2
4■■2
5■■2
6■■■■4
7■■■■4
8■■■■■■6
9■■■■■■6
10■■■■■■■■8
11■■■■■■■■8
12■■■■■■6
13■■■■■■6
14■■■■■■■■8
15■■■■■■■■8
16■■■■■■6
17■■■■■■6
18■■■■■■■■8
19■■■■■■■■8
20■■■■■■6
21■■■■■■6
22■■■■■■■■8
23■■■■■■■■8
24■■■■■■■■■■■■■■14
25■■■■■■■■■■■■■■14
26■■■■■■■■■■■■■■■■16
27■■■■■■■■■■■■■■■■16
28■■■■■■■■■■■■■■14


나는 나만의 계산 방법으로 풀었는데.. 
실제 답을 보니깐 수학 전개식을 이용해서 작성한 사람들이 있었다.
대단한것 같다. 
이번에 이 문제를 풀기위해서 15일을 투자를 했다.
머 하루종일 손을 잡은것은 아니데.. 하루에 1-2시간씩은 생각하고 코딩하고
이런식으로 작업을 했다.

어쨋든 풀고나니 희열도 있고, 자신감도 얻고, 얻는 효과가 많이 있는것 같다.
풀이 방법에 대해서 알고싶은분은 댓글달아주세요.