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


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


LIST ALL
Posted by 김환욱2004-06-28 12:30:14, Hit : 3939
외국인이 작성한 버블정렬 소스
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
notice 창조   반드시 검색 후 질문을 올려주세요.<... 박종훈 2007/09/24  6155
notice 창조   단순 소스제작 부탁은 예고없이 삭제합니... [2] 손상진 2007/04/11  6006
notice 창조   답변소스 등록 관련 안내입니다. [7] 변혁수 2006/01/11  7860
2155 창조
   메모에서 마지막 글자 다음에 커서 이동
날아라KTX 2024/05/20  75
2154 창조
   메모장 자동 폭 가능할까요? [3]
날아라KTX 2024/04/29  83
2153 창조
   풍선말 글꼴, 크기
날아라KTX 2024/03/26  119
2152 창조
   네이버 증권페이지 가격 [2]
날아라KTX 2024/02/22  138
2151 창조
   문자창, 대화창 프로그램 가운데 출력하기
날아라KTX 2023/02/27  376
2150 창조
   리스트박스 질문드려요. [1]
날아라KTX 2022/10/25  424
2149 창조
   메모내용 코마를 구분으로 리스트박스에 정렬... [3]
날아라KTX 2022/10/02  436
2148 창조
   문자표 글꼴 색상 질문드려요
날아라KTX 2022/09/24  473
2147 창조
   멀티버튼이 마우스 따라다니기 [1]
날아라KTX 2022/09/17  462
2146 창조
   카카오톡 다중 접속기도 만들 수 있을까요?
김지훈 2022/04/19  661
2145 창조
   레지스트리...문제점이 뭘까요???? [3]
날아라KTX 2022/04/14  567
2144 창조
   자판을 뗄때 사건에서 띵띵소리 [1]
날아라KTX 2022/04/09  600
2143 창조
   메모 상단줄 질문드려요.
날아라KTX 2022/04/05  560
2142 창조
   폴더명추출 [1]
날아라KTX 2022/01/24  673
2141 창조
   문자표 질문드려요. [1]
날아라KTX 2021/10/19  636
2140 창조
   성인e님께서 도움주셨던 글자 찾아 색상바꾸... [5]
날아라KTX 2021/10/01  711
2139 창조
   리스트박스에 파일명+파일내용 추가하기 [3]
날아라KTX 2020/07/26  1384
2138 창조
   리스트박스 줄위치에 해당하는 버튼 클릭하기 [2]
날아라KTX 2020/03/11  1545
2137 창조
   에디트0 영역에 문자추가 삭제하기 [2]
날아라KTX 2019/10/15  1651
2136 창조
   이진읽어를 10진으로 바꾼다음에 1과 0만으로... [1]
박재성 2019/06/12  1845
2135 창조
   알파벳순서대로 정렬도 창조로 가능할까요?
날아라KTX 2019/05/12  1634
2134 창조
     [re] 알파벳순서대로 정렬도 창조로 가능할까요? [2]
성인e 2019/05/12  1960
LIST ALL   1 [2][3][4][5][6][7][8][9][10]..[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이희철
로그인