Difference between revisions of "Data Sorting in VB6"
From Free Knowledge Base- The DUCK Project: information for everyone
(New page: This program sorts a list using a standard quicksort algorithm. See the code for how the algorithm works. Then if you have the Remove Dupes option selected, the program removes duplicate...) |
m |
||
Line 1: | Line 1: | ||
+ | == Sorts -w- Examples == | ||
+ | |||
+ | === quicksort === | ||
+ | |||
This program sorts a list using a standard quicksort algorithm. See the code for how the algorithm works. | This program sorts a list using a standard quicksort algorithm. See the code for how the algorithm works. | ||
Line 31: | Line 35: | ||
Quicksort is a fine general purpose sorting algorithm. For different kinds of data, however, it may not be the fastest or the best. For example, it has trouble sorting lists that contain many duplicate values and the algorithm countingsort is much faster at sorting numeric data. | Quicksort is a fine general purpose sorting algorithm. For different kinds of data, however, it may not be the fastest or the best. For example, it has trouble sorting lists that contain many duplicate values and the algorithm countingsort is much faster at sorting numeric data. | ||
+ | |||
+ | * Keep in mind that you cannot use countingsort to sort strings. | ||
+ | |||
+ | === countingsort === | ||
+ | |||
+ | |||
[[Category:Computer Technology]] | [[Category:Computer Technology]] | ||
[[Category:Programming]] | [[Category:Programming]] | ||
[[Category:VB6]] | [[Category:VB6]] |
Revision as of 09:45, 29 January 2008
Sorts -w- Examples
quicksort
This program sorts a list using a standard quicksort algorithm. See the code for how the algorithm works.
Then if you have the Remove Dupes option selected, the program removes duplicates. It scans through the sorted array, comparing each item to the one before it. If the item is different, it copies the item into a new array.
Public Function RemoveDups(strings() As String) As String() Dim old_i As Integer Dim last_i As Integer Dim result() As String ' Make the result array. ReDim result(1 To UBound(strings)) ' Copy the first item into the result array. result(1) = strings(1) ' Copy the other items last_i = 1 For old_i = 2 To UBound(strings) If result(last_i) <> strings(old_i) Then last_i = last_i + 1 result(last_i) = strings(old_i) End If Next old_i ' Remove unused entries from the result array. ReDim Preserve result(1 To last_i) ' Return the result array. RemoveDups = result End Function
Quicksort is a fine general purpose sorting algorithm. For different kinds of data, however, it may not be the fastest or the best. For example, it has trouble sorting lists that contain many duplicate values and the algorithm countingsort is much faster at sorting numeric data.
- Keep in mind that you cannot use countingsort to sort strings.