객체를 가지는 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 LongIf in_Left >= in_right Then
Exit Sub
End IfCall swap(in_array, in_Left, (in_Left + in_right) / 2)
in_Last = in_LeftFor 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_CurrentCall 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 Stringtemp = in_array(i)
in_array(i) = in_array(j)
in_array(j) = tempEnd Sub
-
2011년 2월 27일 일요일 오후 9:55whitebono 저작권 위반 적발.
캡쳐 1 : http://cafe.naver.com/dehack/93502
캡쳐 2 : http://cafe.naver.com/dehack/93496

