[AppleScript] 纯文本查看 复制代码

?

001

002

003

004

005

006

007

008

009

010

011

012

013

014

015

016

017

018

019

020

021

022

023

024

025

026

027

028

029

030

031

032

033

034

035

036

037

038

039

040

041

042

043

044

045

046

047

048

049

050

051

052

053

054

055

056

057

058

059

060

061

062

063

064

065

066

067

068

069

070

071

072

073

074

075

076

077

078

079

080

081

082

083

084

085

086

087

088

089

090

091

092

093

094

095

096

097

098

099

100

101

102

103

104

105

106

107

#coding=utf-8

 

'''

数据结构排序

'''

#函数冒泡排序

#   参数alist:被排序的列表

def bubbleSort(alist):

    for num in range(len(alist)-1,0,-1):

        for i in range(num):

            if alist[i] < alist[i+1]:

                #进行当前位置和下一个位置的交换

                alist[i] = alist[i]^alist[i+1]

                alist[i+1] = alist[i]^alist[i+1]

                alist[i] = alist[i]^alist[i+1]

    return alist

 

#函数选择排序

#   参数alist:被排序的列表

def selectSort(alist):

    for num in range(len(alist)-1,0,-1):

        positionMax = 0

        for index in range(1,num+1):

            if alist[positionMax] < alist[index]:

                positionMax = index

             

        # temp = alist[num]

        # alist[num] = alist[positionMax]

        # alist[positionMax] =temp

 

        alist[num] = alist[num]^alist[positionMax]

        alist[positionMax] = alist[num]^alist[positionMax]

        alist[num] = alist[num]^alist[positionMax]

        print alist[num]

    return alist

 

#函数插入排序

#   参数alist:被排序的列表

def insertSort(alist):

    for index in range(1,len(alist)):

        temp = alist[index]

        protion = index

 

        while alist[protion-1] > temp and protion > 0:

            alist[protion] = alist[protion-1]

            protion = protion-1

 

        alist[protion] = temp

    return alist

 

number=[54,26,93,17,77,31,44,55,21]

 

#快速排序

#    参数alist:被排序的列表

#    参数low:左侧起始位置

#    参数hegh:右侧终止位置

def quickSort(alist,low,hegh):

    if low < hegh:

        pos = findpos(alist,low,hegh)

 

        quickSort(alist, low, pos-1)

        quickSort(alist, pos+1, hegh)

 

    return alist

 

#快排中查找中间节点

#    参数alist:被产讯的列表

#    参数low:左侧起始位置

#    参数hegh:右侧终止位置

def findpos(alist,left,right):

    temp = alist[left]

 

    while left < right:

        while left < right and alist[right] >= temp:

            right -= 1

        alist[left] = alist[right]

         

        while left < right and alist[left] <= temp:

            left += 1

        alist[right] = alist[left]

 

 

 

    alist[right] = temp

 

 

 

 

    return right

 

if __name__ == "__main__":

 

    # #测试冒泡排序:

    # num = bubbleSort(number)

    # print num

 

    # #调用选择排序

    # num = selectSort(number)

    # print num

 

    #调入插入排序

    num = insertSort(number)

    print num

 

    # #快速排序

    # num = quickSort(number, 0, len(number)-1)

    # print num

更多学习资料可关注:itheimaGZ获取

据结构学习(冒泡、选择、插入、快速排....相关推荐

  1. C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划

    C++数据结构和算法2 栈 双端/队列 冒泡选择插入归并快排 二三分查找 二叉树 二叉搜索树 贪婪 分治 动态规划 博文末尾支持二维码赞赏哦 _ github 章3 Stack栈 和 队列Queue= ...

  2. php冒泡 插入选择 排序,说说PHP数组的三种排序(冒泡/选择/插入)方法

    说说PHP数组的三种排序(冒泡/选择/插入)方法 PHP #数组 #排序 #冒泡 #选择 #插入2012-05-30 10:17 一.冒泡排序法 说明:找到最大的数,排列到最后面,然后继续找 例: $ ...

  3. 算法笔记-排序算法(冒泡 选择 插入)

    首先罗列一下常见的十大排序算法: 一.冒泡排序 1. 定义: 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则 ...

  4. 【数据结构与算法】排序 冒泡、插入、选择 O(n^2)

    冒泡.插入.选择 O(n2) 基于比较 快排.归并 O(nlogn) 基于比较 计数.基数.桶 O(n) 不基于比较 一.如何分析一个排序算法? 学习排序算法的思路?明确原理.掌握实现以及分析性能. ...

  5. java排序算法(冒泡,插入,选择,快速,堆,归并,希尔,基数)

    import java.util.Arrays; import java.util.LinkedList;/*** * * 各种排序: 冒泡,插入,选择,快速,堆,归并,希尔,基数*/ public ...

  6. python简单选择排序_Python实现冒泡,插入,选择排序简单实例

    本文所述的Python实现冒泡,插入,选择排序简单实例比较适合Python初学者从基础开始学习数据结构和算法,示例简单易懂,具体代码如下: # -*- coding: cp936 -*-#python ...

  7. Java学习笔记———选择结构

    一:Java的基本结构 顺序结构 选择结构 循环结构 二:选择结构 1: if语句 if语句的基本格式: if(判断条件){代码块} if(判断条件){代码块} else {代码块} if(判断条件) ...

  8. Java学习第六天<用户交互Scanner与进阶使用><顺序结构><选择结构><循环结构1>

    用户交互Scanner与进阶使用 public class Demo01 {public static void main(String[] args) {//创建一个扫描对象,用于接收键盘数据Sca ...

  9. 读后感与机翻《基于理论的因果迁移:结合实例级的归纳和抽象级的结构学习》

    研究朱松纯FPICU体系的第 3 篇文章 <Theory-based Causal Transfer: Integrating Instance-level Induction and Abst ...

  10. 斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快

    斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快 近日,斯坦福大学发布了DAWNBenchmark最新成绩,在图像识别(ResNet50-on-ImageNet,93%以上精度) ...

最新文章

  1. HashMap 详解七
  2. Centos下运行gpg --gen-key生成key时出现卡住解决方案笔记
  3. yolov3 权重转换
  4. springboot mybatis 事务_SpringBoot 下 Mybatis 的缓存
  5. 二叉查找树的Java实现
  6. shell mysql e_shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作...
  7. bpe编码_缓冲池扩展(BPE)–如何工作?
  8. springboot实现xml传参和返回值
  9. java多线程小游戏_java控制台贪吃蛇小游戏(多线程版)
  10. win7怎么像xp一样搜索计算机,win7可以象XP那样直接在我的电脑里面直接打开摄像头吗...
  11. 常用游戏测试用例模板
  12. Class文件 反编译成 Java文件
  13. RK3568平台开发系列讲解(安卓适配篇)Android11旋转屏幕
  14. 码上飞机大战v1.0.8
  15. 让div中的p标签文字垂直居中的方法
  16. 微信小程序高度自适应布局
  17. C语言初学 (两数相加求和)
  18. JAVA图片裁剪工具类
  19. Linux下安装maven(mvn命令)
  20. 呼和浩特民族学院计算机专业编号,2019呼和浩特民族学院专业排名

热门文章

  1. 学生党专用计算机,学生党平价笔记本电脑 最适合学生的高性价比电脑推荐
  2. 20221222 Coppeliasim的视频导出功能
  3. 传奇世界私服务器端制作,传奇世界单机版一键端带服务器附带安装教程。(可局域网)...
  4. Android ——XML布局实现桌面台球的开始界面
  5. 视频怎么变成gif?快速巧妙生成动图的方法介绍
  6. 2022年金砖国家职业技能大赛(决赛)网络空间安全赛项 | 浙江赛区选拔赛 任务书
  7. 计算机弹音乐薛之谦的歌曲,薛之谦 万能音符(The Key) 薛之谦歌曲,薛之谦mp3在线试听 - 5nd音乐网...
  8. 荣耀x10和荣耀20pro哪个好?参数配置对比介绍
  9. Word中给论文添加引用
  10. java实现捕鱼达人