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


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


LIST ALL
Posted by 김환욱2004-06-28 12:30:14, Hit : 3940
외국인이 작성한 버블정렬 소스
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
433 창조
   공 충돌 [1]
성인e 2009/07/25  3890
432 창조
   창조웹브라우저.. 밑판이 많을때..;음.. [1]
qkrwhdgns 2005/11/06  3891
431 창조
   문자 데이터를 파일로 읽어들여 비교
D.Walker 2005/08/14  3894
430 창조
   조언을 구합니다. [5]
skynex 2009/10/01  3896
429 창조
     [re] 무한 창 생성하는 프로그램입니다..근데 명... [1]
성인e 2009/11/29  3900
428 창조
   웹문서를 통쩨로 다운받는 방법 있나요? [5]
강정훈 2007/02/27  3903
427 기타
   [기타]궁금한게 있는데요.. [1]
하얀종이 2002/12/18  3904
426 창조
     [re] 방향키같은거 누르면 그림이 이동하는법좀;; [5]
김환욱 2007/01/17  3904
425 창조
   비스타에선 시스템 종료 명렁어를 못쓰나요?? [2]
이희창 2009/12/01  3904
424 창조
   16진수를 10진수로.. [2]
nylon 2004/02/24  3905
423 창조
   웹브라우져~ 보이게...여쭈어봅니다. [1]
서정훈 2010/06/10  3906
422 창조
   SWF 파일의 구동.. [4]
차정일 2009/05/07  3910
421 창조
   포트리스 포탄날아가는.. 소스 제작해주실분.. [2]
권선중 2006/01/23  3919
420 창조
   인자를 객체이름으로 받아 사용하는 방법 [9]
최현묵 2009/12/26  3921
419 창조
     [re] [질문] 리스트비교
김환욱 2002/11/19  3922
418 창조
   간단한 질문 날라가요~! [3]
ipddr 2002/09/21  3923
417 창조
   한글 키값 알아오고 싶은데..창만 이용해서.. [8]
권선중 2006/07/27  3924
416 기타
       킁..그렇군요.. [3]
하얀종이 2002/10/30  3934
415 창조
   VBMP3 관련 질문입니다.. [1]
김환욱 2002/12/21  3934
414 창조
     [re] 제 소스좀 수정해 주세요~ [5]
nylon 2004/05/14  3935
413 기타
   익스플로러에서 접속 불가한 부분 [5]
신용주 2011/02/05  3937
412 창조
   MNM과 MNP에서 안정성이란? [4]
신용주 2009/04/25  3939
창조
   외국인이 작성한 버블정렬 소스 [11]
김환욱 2004/06/28  3940
410 기타
   [HTML 태그] 홈페이지의 하단으로 이동하기 [2]
한수훈 2009/06/07  3942
409 창조
   user32.dll 사용자함수 연결시 에러 [3]
D.Walker 2005/08/18  3943
LIST ALL   Prev [1]..[61][62][63][64][65][66][67][68][69] 70 ..[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이희철
로그인