下载此文档

VBA排序的十种算法.doc


文档分类:IT计算机 | 页数:约18页 举报非法文档有奖
1/18
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/18 下载此文档
文档列表 文档介绍
在使用VBA进行写程序时,经常会做排序,下面将会给出一些常用的排序算法的实现,方便大家写程序参考,若代码中出现了错误,欢迎高手指正。主要算法有:1、(冒泡排序)Bubblesort2、(选择排序)Selectionsort3、(插入排序)Insertionsort4、(快速排序)Quicksort5、(合并排序)Mergesort6、(堆排序)Heapsort7、(bSort8、(希尔排序)ShellSort9、(基数排序)RadixSort10、ShakerSort第一种(冒泡排序)BubblesortPublicSubBubbleSort(ByReflngArray()AsLong)DimiOuterAsLongDimiInnerAsLongDimiLBoundAsLongDimiUBoundAsLongDimiTempAsLongiLBound=LBound(lngArray)iUBound=UBound(lngArray)'冒泡排序ForiOuter=iLBoundToiUBound-1ForiInner=iLBoundToiUBound-iOuter-1'比较相邻项IflngArray(iInner)>lngArray(iInner+1)Then'交换值iTemp=lngArray(iInner)lngArray(iInner)=lngArray(iInner+1)lngArray(iInner+1)=iTempEndIfNextiInnerNextiOuterEndSub2、(选择排序)SelectionsortPublicSubSelectionSort(ByReflngArray()AsLong)DimiOuterAsLongDimiInnerAsLongDimiLBoundAsLongDimiUBoundAsLongDimiTempAsLongDimiMaxAsLongiLBound=LBound(lngArray)iUBound=UBound(lngArray)'选择排序ForiOuter=iUBoundToiLBound+1Step-1iMax=0'得到最大值得索引ForiInner=iLBoundToiOuterIflngArray(iInner)>lngArray(iMax)TheniMax=iInnerNextiInner'值交换iTemp=lngArray(iMax)lngArray(iMax)=lngArray(iOuter)lngArray(iOuter)=iTempNextiOuterEndSub复制代码第三种(插入排序)InsertionsortPublicSubInsertionSort(ByReflngArray()AsLong)DimiOuterAsLongDimiInnerAsLongDimiLBoundAsLongDimiUBoundAsLongDimiTempAsLongiLBound=LBound(lngArray)iUBound=UBound(lngArray)ForiOuter=iLBound+1ToiUBound'取得插入值iTemp=lngArray(iOuter)'移动已经排序的值ForiInner=iOuter-1ToiLBoundStep-1IflngArray(iInner)<=iTempThenExitForlngArray(iInner+1)=lngArray(iInner)NextiInner'插入值lngArray(iInner+1)=iTempNextiOuterEndSub复制代码第四种(快速排序)QuicksortPublicSubQuickSort(ByReflngArray()AsLong)DimiLBoundAsLongDimiUBoundAsLongDimiTempAsLongDimiOuterAsLongDimiMaxAsLongiLBound=LBound(lngArray)iUBound=UBound(lngArray)'若只有一个值,不排序If(iUBound-iLBound)ThenForiOuter=iLBoundToiUBoundIflngArray(iOuter)>lngArray(iMax)TheniMax=iOuterNextiOuteriTemp=lngArray(iMax)lngArray(iMax)=lngArray(iUBound)lngArray(iUBound)=iTemp'开始快速排序InnerQuickSortlngArray,iLBound,iUBoundEndIfEndSubPrivateSubInnerQuickSort(ByReflngArray()AsLong,ByValiLeftEndAsL

VBA排序的十种算法 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数18
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xnzct26
  • 文件大小33 KB
  • 时间2019-07-20