두근두근이야기

선택정렬(selection sort) in logo 본문

IT/IT ::컴퓨터시스템개론

선택정렬(selection sort) in logo

골든 2012. 12. 12. 12:46

selection sort프로그램



to selectionsort :l

localmake "a (listtoarray :l) ;;변수를 {}배열로 변환한다


localmake "n (count :a) ;;count는 리스트의 개수를 반환한다.

localmake "n1 :n-1

local [i j min temp]

repeat :n1[make "i repcount ;;repcount 초기값 1, 반복 될 때마다 1씩 증가한다.


make "min :i ;; :i번째를 최소로 할당

repeat (:n-:i) [make "j sum :i repcount ;; :n-:i번 반복한다.

if lessp (item :j :a)(item :min :a) [make "min :j]] ;;a(j)<a(i)이면 j를 min으로 만든다


make "temp item :i :a ;;a(j)를 temp에 저장

setitem :i :a (item :min :a)  ;;a(j)를 i자리에 넣는다

setitem :min :a :temp ;;a(i)를 j자리에 넣는다.

print (list :a repcount) ;;매 단계마다 배열의 과정을 출력

]

output arraytolist :a

end