`
垂直的微笑
  • 浏览: 45280 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

常用排序算法脚本实现

 
阅读更多

冒泡排序

 

Public Sub BubbleSort(ByRef foldArray() As String)
    Dim iOuter As Long
    Dim iInner As Long
    Dim iLBound As Long
    Dim iUBound As Long
    Dim iTemp As Long

    iLBound = LBound(lngArray)
    iUBound = UBound(lngArray)

    For iOuter = iLBound To iUBound - 1
        For iInner = iLBound To iUBound - iOuter - 1
            If lngArray(iInner) < foldArray(iInner + 1) Then
                iTemp = lngArray(iInner)
                foldArray(iInner) = foldArray(iInner + 1)
                foldArray(iInner + 1) = iTemp
            End If
        Next iInner
    Next iOuter
End Sub

 

def bubble_sort(sort_list):
    iter_len = len(sort_list)
    if iter_len < 2:
        return sort_list
    for i in range(iter_len-1):
        for j in range(iter_len-i-1):
            if sort_list[j] > sort_list[j+1]:
                sort_list[j], sort_list[j+1] = sort_list[j+1], sort_list[j]
    return sort_list
 

选择排序

 

Public Sub SelectionSort(ByRef lngArray() As Long)
    Dim iOuter As Long
    Dim iInner As Long
    Dim iLBound As Long
    Dim iUBound As Long
    Dim iTemp As Long
    Dim iLocation As Long

    iLBound = LBound(lngArray)
    iUBound = UBound(lngArray)

    For iOuter = iLBound To iUBound - 1
        iLocation = iOuter
        For iInner = iOuter To iUBound
            If lngArray(iInner) > lngArray(iLocation) Then iLocation = iInner
        Next iInner
        
        If iLocation <> iOuter Then
            iTemp = lngArray(iLocation)
            lngArray(iLocation) = lngArray(iOuter)
            lngArray(iOuter) = iTemp
        End If
    Next iOuter
End Sub

 

def selection_sort(sort_list):
    iter_len = len(sort_list)
    if iter_len < 2:
        return sort_list
    for i in range(iter_len-1):
        smallest = sort_list[i]
        location = i
        for j in range(i, iter_len):
            if sort_list[j] < smallest:
                smallest = sort_list[j]
                location = j
        if i != location:
            sort_list[i], sort_list[location] = sort_list[location], sort_list[i]
    return sort_list
 

插入排序

 

Public Sub InsertSort(ByRef lngArray() As Long)
    Dim iOuter As Long
    Dim iInner As Long
    Dim iLBound As Long
    Dim iUBound As Long
    Dim iTemp As Long
    
    iLBound = LBound(lngArray)
    iUBound = UBound(lngArray)
    
    For iOuter = iLBound + 1 To iUBound
        iTemp = lngArray(iOuter)
        
        For iInner = iOuter - 1 To iLBound Step -1
            If lngArray(iInner) >= iTemp Then Exit For
            lngArray(iInner + 1) = lngArray(iInner)
        Next iInner
        
        lngArray(iInner + 1) = iTemp
    Next iOuter
End Sub

 

def insertion_sort(sort_list):
    iter_len = len(sort_list)
    if iter_len < 2:
        return sort_list
    for i in range(1, iter_len):
        key = sort_list[i]
        j = i - 1
        while j>=0 and sort_list[j]>key:
            sort_list[j+1] = sort_list[j]
            j -= 1
        sort_list[j+1] = key
    return sort_list
 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    JavaScript中九种常用排序算法

    不同的排序算法,执行效率有着天壤之别,本脚本用JavaScript演示了各种常见的排序算法,包括:冒泡排序、选择排序、插入排序、谢尔排序、快速排序(递归)、快速排序(堆栈)、归并排序、堆排序

    30个初级常用python实现脚本 中文pdf高清版

    资源包含新手必备的Python三十个常见的脚本汇总,包括冒泡算法之类,帮助您了解python中可用的各种技巧,需要的朋友可下载试试! 1、冒泡排序 2、计算x的n次方的方法 3、计算aa + bb + c*c + …… 4、计算阶乘 n! 5...

    coding:编程技术学习笔记 https

    笔耕不缀,持续学习 网站 2021 2020 2019 vdom 原理解析与简单实现 ...JavaScript 实现常见排序算法 JavaScript 实现常用设计模式 其他笔记 bash 脚本编程 python 学习笔记 Too young, too simple. Sometimes, naive.

    PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例

    常用的方法有两种: 1. 领接表的方式; 2. 预排序遍历树方式; 假设树状结构如下图: 领接表方式 主要依赖于一个 parent 字段,用于指向上级节点,将相邻的上下级节点连接起来,id 为自动递增自动,parent_id 为...

    SwiftDataStructure:Swift 中实现的常见数据结构列表

    一些排序算法 编写简单 swift 脚本的技巧 1.确保安装了xcode $ xcodebuild -version 2. Swift 仍处于早期阶段。 您可能会发现传统的 Objective-c 很有用(例如,NSDate)。 import Foundation 3. 在终端中运行 ...

    ASP.NET常见问题集锦.zip

    C#排序算法大全.txt C#编程规范.doc C#语言参考.doc Code.doc C#中的“装箱”与“拆箱”.txt Datagrid分页、排序、删除代码.txt DataList分页、增加、删除、修改实例.doc is as override示例.txt JA_ASP ...

    1345个易语言模块

    世宝脚本语言引擎.ec 世恒通用安装系统文件压缩模块.ec 世恒通用安装系统文件压缩 模块RAR.EC 个性信息框.ec 个性信息框1.1.ec 个性信息框1.21.ec 个性信息框1.5.ec 个性 信息框1.ec 个性信息框1[1].21.ec 个性化...

    java 面试题 总结

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...

    R语言与网站分析

    3238.3.2 实例:基于 knn 算法的商品推荐系统 324第9 章 样本间的关系 3299.1 关联分析 3299.1.1 关联分析的原理 3299.1.2 Apriori 算法的R 语言实现 3319.2 序列模式关联分析 3349.2.1 序列模式关联分析的...

    考研数据结构和leetcode-coding-for-BAT:BAT编码

    考研数据结构和leetcode Coding for BAT 写在前面 作者现在是重庆邮电大学的一名研究生,目前研二...熟练掌握常用Linux的基本操作,会写基本shell脚本 事项 开始 预计结束 细节 状态 建立学习仓库 2019/08/27 2019/0

    asp.net知识库

    #实现的18位身份证格式验证算法 身份证15To18 的算法(C#) 一组 正则表达式 静态构造函数 忽略大小写Replace效率瓶颈IndexOf 随机排列算法 理解C#中的委托[翻译] 利用委托机制处理.NET中的异常 与正则表达式相关的几...

    易语言模块914个

    BoyChong专用常用模块2.ec BPL专用更新模块.ec cards.ec coolp.ec Cool皮肤模块.ec copy_dir.ec CPU占用率检测模块.ec cs.ec DES加密模块 1.0.ec DIY热键框模块.ec DLL注入模块.ec DOS命令模块.ec EC....

    高级java笔试题-python-job:Python面试相关知识点汇总个人整理

    高级java笔试题 面试知识点简单汇总(自测) 招聘网站的一般要求汇总(面试造火箭系列): 具备开发高并发引擎能力 熟悉HTTP,TCP/IP等常用协议原理 ...常用算法(冒泡,二叉树,快排, 堆排序等) 线程

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    C#编程经验技巧宝典

    43 &lt;br&gt;0061 树的实现 44 &lt;br&gt;3.2 排序 48 &lt;br&gt;0062 如何实现选择排序算法 48 &lt;br&gt;0063 如何实现冒泡排序算法 49 &lt;br&gt;0064 如何实现快速排序算法 50 &lt;br&gt;0065 如何实现插入排序算法 ...

    java开源包4

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    php网络开发完全手册

    第8章 数组操作与数据结构算法 119 8.1 一维数组与多维数组 119 8.1.1 一维数组简介 119 8.1.2 多维数组简介 119 8.2 常用的数组操作 120 8.2.1 数组的创建与调用 120 8.2.2 数组的更新 121 8.2.3 数组元素的遍历 ...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    5.3.1 排序算法223 5.3.2 字符串查找225 5.4 一个实际的应用程序226 5.4.1 识别测量数据的趋势226 5.4.2 LISLP算法的复杂度226 5.4.3 用T-SQL解决最长上升子序列的长度问题227 5.5 总结229 第6章 子查询、表...

    JAVA上百实例源码以及开源项目源代码

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    JAVA上百实例源码以及开源项目

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

Global site tag (gtag.js) - Google Analytics