vb排序程序1资料Word文件下载.docx

上传人:b****1 文档编号:1030179 上传时间:2023-04-30 格式:DOCX 页数:12 大小:18.25KB
下载 相关 举报
vb排序程序1资料Word文件下载.docx_第1页
第1页 / 共12页
vb排序程序1资料Word文件下载.docx_第2页
第2页 / 共12页
vb排序程序1资料Word文件下载.docx_第3页
第3页 / 共12页
vb排序程序1资料Word文件下载.docx_第4页
第4页 / 共12页
vb排序程序1资料Word文件下载.docx_第5页
第5页 / 共12页
vb排序程序1资料Word文件下载.docx_第6页
第6页 / 共12页
vb排序程序1资料Word文件下载.docx_第7页
第7页 / 共12页
vb排序程序1资料Word文件下载.docx_第8页
第8页 / 共12页
vb排序程序1资料Word文件下载.docx_第9页
第9页 / 共12页
vb排序程序1资料Word文件下载.docx_第10页
第10页 / 共12页
vb排序程序1资料Word文件下载.docx_第11页
第11页 / 共12页
vb排序程序1资料Word文件下载.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

vb排序程序1资料Word文件下载.docx

《vb排序程序1资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《vb排序程序1资料Word文件下载.docx(12页珍藏版)》请在冰点文库上搜索。

vb排序程序1资料Word文件下载.docx

List1.Visible=False

Fori=0ToUBound(Sums)

nn:

Randomize

z=99999*Rnd+9

j=SendMessageFind(List1.hWnd,&

H18F,0,z)

Ifj>

-1Then

GoTonn

Else

Sums(i)=z

Sumb(i)=z

List1.AddItemSums(i)

EndIf

Next

List1.Visible=True

Me.Caption="

共产生数据:

"

&

UBound(Sums)+1&

"

项"

EndSub

PrivateSubCommand2_Click()

DimtiAsInteger,iAsLong

List2.Clear

Fori=0ToUBound(Sumb)

Sums(i)=Sumb(i)

blnSort=Option1(0).Value

T=timeGetTime

IfOption2(0).Value=TrueThen

Callmpsort(Sums) 

冒泡排序

ti=0

IfOption2

(1).Value=TrueThen

Callinsort(Sums) 

插入排序

ti=1

IfOption2

(2).Value=TrueThen

CallQuickSort(LBound(Sums),UBound(Sums)) 

快速排序

ti=2

IfOption2(3).Value=TrueThen

Callselctsort(Sums) 

选择排序

ti=3

IfOption2(4).Value=TrueThen

Callhirsort(Sums) 

希尔排序

ti=4

IfOption2(5).Value=TrueThen

Callduisort(Sums) 

堆排序

ti=5

IfOption2(6).Value=TrueThen

Callnsort(Sums) 

打乱次序

ti=6

Label1(ti).Caption=timeGetTime-T

List2.Visible=False

List2.AddItemSums(i)

List2.Visible=True

成功对:

项数据进行了排序,用时:

Label1(ti).Caption&

毫秒"

ExitSub

PrivateSubCommand3_Click()

六种排序"

PrivateSubnsort(ByRefarrtosort()AsLong)

DimiAsLong,jAsLong,tmpAsLong

Fori=LBound(arrtosort)ToUBound(arrtosort)

j=(UBound(arrtosort)-i)*Rnd+i

Ifi<

>

jThen

tmp=arrtosort(i)

arrtosort(i)=arrtosort(j)

arrtosort(j)=tmp

Nexti

PrivateSubmpsort(ByRefarrtosort()AsLong) 

经过n-1趟子排序完成的,它的时间复杂度为O(n^2)

优点:

1.“编程复杂度”很低,很容易写出代码;

2.具有稳定性

DimiAsLong,jAsLong,MAsLong,tmpAsLong

M=UBound(arrtosort) 

m等于数组上标

DoWhileM 

至m等于数组下标

j=M-1

M=0

IfblnSortThen

Fori=0Toj

Ifarrtosort(i)>

arrtosort(i+1)Then 

找到后者大于前者地数

tmp=arrtosort(i) 

两者互换

arrtosort(i)=arrtosort(i+1)

arrtosort(i+1)=tmp

M=i 

从该位置开始继续查找

Ifarrtosort(i)<

arrtosort(i+1)Then

M=i

Loop

PrivateSubinsort(ByRefarrtosort()AsLong) 

插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据

算法适用于少量数据的排序,时间复杂度为O(n^2)。

是稳定的排序方法。

DimiAsLong,jAsLong,kAsLong,MAsLong,tmpAsLong

M=UBound(arrtosort)

Fori=0ToM 

从数组下标到数组上标

Forj=i+1ToM 

从数组的后一位开始

Ifarrtosort(j)<

arrtosort(i)Then 

后者大于前者

tmp=arrtosort(j)

Fork=jToi+1Step-1 

往后移动数组

arrtosort(k)=arrtosort(k-1)

Nextk

arrtosort(i)=tmp 

插入该数

Nextj

Forj=i+1ToM

Ifarrtosort(j)>

arrtosort(i)Then

Fork=jToi+1Step-1

arrtosort(i)=tmp

PrivateSubQuickSort(lngLAsLong,lngRAsLong) 

快速排序,lngL,lngR 

需排序数组的下标,上标

快速排序(Quicksort)是对冒泡排序的一种改进。

由C.A.R.Hoare在1962年提出。

它的基本思想是:

通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小

然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

i=lngL

j=lngR

M=Sums((i+j)\2)

tmp=tCenter(Sums(i),M,Sums(j)) 

取轴枢,既作为比较的那个数

Whilei<

j

lngRAndSums(i)<

tmp 

求lngI使N(i)小于轴枢

i=i+1

Wend

Whilej>

lngLAndSums(j)>

求lngJ使N(j)大于轴枢

j=j-1

lngRAndSums(i)>

tmp

lngLAndSums(j)<

=jThen 

不出错,交换N(i)和N(j)

M=Sums(i)

Sums(i)=Sums(j)

Sums(j)=M

IflngL<

jThen:

CallQuickSort(lngL,j) 

改变位置,递归调用

lngRThen:

CallQuickSort(i,lngR)

PrivateFunctiontCenter(aAsLong,bAsLong,CAsLong)AsLong 

取三者中的中间项

Ifa>

bThen 

a>

b

Ifb>

CThen 

b>

c

tCenter=b 

Else 

bc>

=b

=ba>

tCenter=C 

=bc>

a

tCenter=a 

=a

=aa>

=ac>

=ab>

=a 

c>

EndFunction

PrivateSubselctsort(ByRefarrtosort()AsLong) 

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,

直到全部待排序的数据元素排完。

选择排序是不稳定的排序方法。

DimiAsLong,jAsLong,MAsLong,kAsLong,tmpAsLong

从数组下标开始到数组上标

k=i

从后一位开始比较

arrtosort(k)Then:

k=j 

挑出最小的数字

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2