객체를 가지는 array 만들기

Unanswered 객체를 가지는 array 만들기

  • 2010년 9월 14일 화요일 오전 4:23
     
     

    lua만 쓰다가 비주얼 베이직 쓰니까 궁금해서 올립니다.

    루아는 행렬 내에 모든 종류의 데이터 구조를 넣을 수 있는데요. 비주얼 베이직에서도 가능한가요?

    만약 가능하다면 어느 범위까지 되는지 궁금합니다.

모든 응답

  • 2010년 9월 16일 목요일 오전 5:49
     
     

    [6.0] Quick Sort 소스

    관계형 DB 에서는 모두 데이터 정렬 (ORDER BY) 를 지원하기 때문에 소트가 중요하지 않지만,
    웹 서비스 프로그램이나 게임 및 그래픽 프로그램등 처리 속도가 빨라야

    되고, 상업용 소프트웨어를 제작 할 때는 기초기술을 이용해야

    되는 경우가 많습니다.

    실제로 쓰고 있는 루틴이니까 버그는 없습니다.

     

    사용 방법은 Call Qsort(A, B, C, D)

     

    여기서

    A => 문자열 배열 명칭 입니다

    B => 소트하려고하는 배열의 첨자의 시작 위치 대부분 0

    C => 소트하고자하는 배열의 첨자의 끝위치 대부분 Ubound 값이죠

    D => 소트하고자하는 문자열의 위치

     

    예를 들어 문자열이 A(0)="asdfgh"
    A(1)="rqtqrwo"
    A(2)="nncnccn"

    인데 네 번재 이후의 문자열브터 전부 소트하고 싶다면 다음과

    같이 하면 됩니다.

    Call Qsort(A,0,2,4) 와 같이 하세요.

    소스는 다음과 같습니다.

     

    Public Sub Qsort(in_array() As String, in_Left As Long, in_right As Long, start_position As Long)


    Dim in_Current As Long
    Dim in_Last As Long

    If in_Left >= in_right Then
    Exit Sub
    End If

    Call swap(in_array, in_Left, (in_Left + in_right) / 2)
    in_Last = in_Left

    For in_Current = in_Left + 1 To in_right
    If Mid(in_array(in_Current), start_position) < Mid(in_array(in_Left), start_position) Then
    in_Last = in_Last + 1
    Call swap(in_array, in_Last, in_Current)
    End If
    Next in_Current

    Call swap(in_array, in_Left, in_Last)
    Call Qsort(in_array, in_Left, in_Last - 1, start_position)
    Call Qsort(in_array, in_Last + 1, in_right, start_position)

    End Sub

    Public Sub swap(in_array() As String, i As Long, j As Long)
    Dim temp As String

    temp = in_array(i)
    in_array(i) = in_array(j)
    in_array(j) = temp

    End Sub

  • 2011년 2월 27일 일요일 오후 9:55
     
     
    whitebono 저작권 위반 적발.
    캡쳐 1 : http://cafe.naver.com/dehack/93502
    캡쳐 2 : http://cafe.naver.com/dehack/93496