그래서 숙제용 으로는 못쓰는 프로용 코딩을 한번 해보았다
(define (bubble-sort input-vector)
(let* ([v (vector-copy input-vector)]
[end-idx (vector-length v)]
[changed? #f])
(define (bubble-sort-helper idx)
(if (= idx end-idx)
(if (not changed?)
v
(begin (set! changed? #f)
(bubble-sort-helper 0)))
(let ([idx+1 (+ idx 1)])
(if (= idx+1 end-idx)
(bubble-sort-helper idx+1)
(let ([n1 (vector-ref v idx)]
[n2 (vector-ref v idx+1)])
(if (<= n1 n2)
(bubble-sort-helper idx+1)
(begin (vector-set! v idx n2)
(vector-set! v idx+1 n1)
(set! changed? #t)
(bubble-sort-helper idx+1))))))))
(bubble-sort-helper 0)))
개추 페이지 다른이름으로 저장
빼애애액 이건 라켓이다
이게 뭐야 ㅋㅋㅋ 코드가 c언어로 짠거보다 5~6배는 많아보임