창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


질문게시판
- 반드시 검색을 하신 후 원하는 답변을 찾을 수 없을 때, 질문을 올려주세요.


LIST ALL
Posted by 김환욱2004-06-28 12:30:14, Hit : 3936
외국인이 작성한 버블정렬 소스
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=qna&no=820
아래 비베 소스 인데요
이게 그 문제의 1000개의 아이템을 0.05초만에 정렬해버리는 소스 입니다.
아래 소스로 배열변수의 값을 정렬하고 리스트박스에 뿌려주는 형식이더군요..
리스트박스에 뿌려주는 소스는 필요가 없기때문에 이 게시물에 포함시키지 않고
배열변수의 정렬부분만 복사해서 붙여넣기 했습니다.
제가 2시간동안 창조로 이리저리 해봤는데 배열의 범위를 벗어났습니다
이런 틱틱대는 소리만 해대고 안되네요 ㅡㅡ;
컴파일까지는 성공했는데 반복문이 무한 루프에 빠져서 프로그램이 먹통되고 -_-;;
소스가 간단한거 같은데 이상하게 안되네요 ㅜ.ㅜ
외국인이 주석도 표시해 놨는데 주석때문에 햇갈리지 마세요^^
제가 구현한 버블정렬 소스는 무식해서 느린가봅니다.. -_-;

Public Sub Bubblesort(List() As Long, ByVal min As Long, ByVal max As Long)
Dim last_swap As Long
Dim i As Long
Dim j As Long
Dim tmp As Long
    
    ' Repeat until we are done.
    Do While min < max
        ' Bubble up.
        last_swap = min - 1
        ' For i = min + 1 To max
        i = min + 1
        Do While i <= max
            ' Find a bubble.
            If List(i - 1) > List(i) Then
                ' See where to drop the bubble.
                tmp = List(i - 1)
                j = i
                Do
                    List(j - 1) = List(j)
                    j = j + 1
                    If j > max Then Exit Do
                Loop While List(j) < tmp
                List(j - 1) = tmp
                last_swap = j - 1
                i = j + 1
            Else
                i = i + 1
            End If
        Loop
        ' Update max.
        max = last_swap - 1
        
      
       ' Bubble down.
        last_swap = max + 1
        ' For i = max - 1 To min Step -1
        i = max - 1
        Do While i >= min
            ' Find a bubble.
            If List(i + 1) < List(i) Then
                ' See where to drop the bubble.
                tmp = List(i + 1)
                j = i
                Do
                    List(j + 1) = List(j)
                    j = j - 1
                    If j < min Then Exit Do
                Loop While List(j) > tmp
                List(j + 1) = tmp
                last_swap = j + 1
                i = j - 1
            Else
                i = i - 1
            End If
        Loop
        ' Update min.
        min = last_swap + 1
    Loop
End Sub

최재일   2004-06-28 PM 2:34:05  
헐~ 1000개를 0.05초만에 정렬하다니..
비베의 반복문이 훨씬 빨라서 그러는거 아닐까요??
암튼 함 분석해보져..
ps.이진백   2004-06-28 PM 3:04:11  
대강 뭔소린지는 알았는데...
적용하기 무지 귀찮음.
ps.이진백   2004-06-28 PM 3:04:52  
(환욱님 지금 1점차로 위자드님 추격 중)
김환욱   2004-06-28 PM 3:08:58  
켁 -_-; 1점.... 이거 금방 금방 오르는데요?
김정엽[닷넷]   2004-06-28 PM 8:49:20  
버블 정렬은 정렬 알고리즘중 최악의 알고리즘일건데..
버블 정렬인가..
-_-;;; 0.05초... 라면...
이거 버블 맞는지 ;ㅁ;
적어도 삽입 정렬은 안될까요..?
더 나아가 분할 정렬이라던지..
;;
최재일   2004-06-29 AM 1:30:58  
저거 비베소스 분석해보니.. 내림차순과 오름차순 두개의 명령어군요..
글구, 김환욱님이 소스자료실에 올리신 버블정렬과는 정렬방식이 다소 다른데요.. 좀 특이한 방법이라구 할까낭??
아무래도 정렬속도가 더 빠를듯 싶습니다.. 암툰 완성해서 소스올려보져..
김환욱   2004-06-29 AM 7:54:52  
네.. 오름차순과 내림차순으로 두개가 되어 있더라구요..
버블정렬 기본 알고리즘을 변형시켜서 알고리즘의 원리가 이해가 안되서 그냥 똑같이 따라 할려니 햇갈려서 못하겠어요..^^ 이게 아주 효율적으로 정렬이 되는것 같아요.. 쓸데 없는데서 시간 안끌고...
김환욱   2004-06-29 AM 7:55:39  
좀 의아 한게.. 오른차순과 내림차순이 따로 되어 있는게 아니고 한 프로시저 안에 저렇게 있다는게 좀 이상하고 그것때문에 더 햇갈리네요^^
최재일   2004-06-29 PM 6:31:11  
김환욱님이 올리신 퀵버블정렬 소스는
처음줄부터 차차 비교해서 큰값을 맨 뒤로 보내는 방식을 반복해서 전체줄을 한번 반복할때마다 맨 뒤값을 하나씩 값 비교검사에서 제외시키는 방식이자나요..
그런데 저거 비베소스는 작은값은 맨 앞으로, 큰값을 맨 뒤로 보내서
전체줄을 반복할때마다 맨 앞의 값과 맨 뒤의 값을 제외시키는 방식인거 같더라구여..
그래서 아무래도 더 빠르겠죠??
빠른시일내에 소스 올리지요.. 요새 괜히 바뻐서 전혀 손도 못데구 잇네요.. ㅡㅡ;
김환욱   2004-06-29 PM 6:57:49  
헉.. 버블정렬에다가 퀵정렬을 합쳤나... 퀵정렬 알고리즘과 비슷하네요...
지상현   2010-06-27 AM 3:42:05  
원래 버블정렬은 한쪽으로 모는건데 이건 양쪽으로 모는 것 같네요.
LIST ALL               GO TO THE TOP


N
Category
   Subject
Posted by
Date
H
1483 기타
   온라인상의 파일 다운로드시 진행상황 표시하... [6]
최재일[20JI] 2004/05/21  3851
1482 기타
   스눕스파이 프로그램을 돌려보았는데...질문이요 [4]
위자드 2004/05/21  4042
1481 기타
     [re] 분석해봤어염.. 허접하지만.. ㅡㅡㅋ [1]
최재일[20JI] 2004/05/22  4413
1480 기타
       [re] 걍 직접 창조로 소스를.. [2]
최재일[20JI] 2004/05/22  4461
1479 창조
   도스용 exe파일과 창조와의 관계??? [8]
위자드 2004/05/22  3664
1478 창조
   시계질문하나만 할꼐여. [3]
정기훈 2004/05/28  3080
1477 기타
   API뷰어 좀 주세요! [4]
정성우 2004/05/29  4453
1476 기타
   컴퓨터의 윈도우 폴더를 아는법.. [5]
손상진 2004/06/04  3525
1475 창조
   질문입니다 [3]
anemorne 2004/06/10  3237
1474 창조
   창조에서 특정 파일의 아이콘 추출 -_-;; [3]
이경근 2004/06/13  4307
1473 기타
   POST 방식이라 GET 방식의 차이;; [3]
이경근 2004/06/13  3591
1472 창조
   [재질문] 잘못된 부분 좀 봐 주세요.... [2]
위자드 2004/06/13  2562
1471 창조
   매체재생기로 라듸오를 듣게 할려니 안되네요... [9]
김정수 2004/06/14  5431
1470 창조
   [질문]BitBlt 사용할수 없을까요? [2]
김환욱 2004/06/14  3503
1469 창조
   ㅠㅠ BitBlt 왜 안되지....ㅜㅜ [5]
김환욱 2004/06/14  3690
1468 창조
   [질문]BMP 와 JPG 어떤게 읽을때 더 빨리 읽... [6]
김환욱 2004/06/15  3044
1467 창조
   참 이상하네요... [4]
김환욱 2004/06/17  3187
1466 창조
   [질문]윈도우XP에서 그림판으로 그림파일 읽... [5]
김환욱 2004/06/20  3809
1465 창조
   창조로 다운로드 창을 나타내는 방법...... [3]
위자드 2004/06/20  4064
1464 창조
   어휴...망했습니다. 그림판객체로 BMP 읽기 관련 [1]
김환욱 2004/06/22  3176
1463 기타
   [기타] 이런 경우는 왜 그러져?? 진짜 황당~ [4]
최재일 2004/06/23  3489
1462 창조
   [질문] 실행파일에서 아이콘을 추출하는법점 [1]
김훈 2004/06/25  2948
1461 창조
   [질문]dll 파일을... [12]
박제헌[Heoni] 2004/06/27  2674
1460 창조
   변수선언에 대하여... [8]
최재일 2004/06/28  3478
창조
   외국인이 작성한 버블정렬 소스 [11]
김환욱 2004/06/28  3936
LIST ALL   Prev [1]..[21][22][23][24][25][26][27] 28 [29][30]..[87] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인