`
san_yun
  • 浏览: 2639193 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

基础算法--排序算法

 
阅读更多

排序算法包括:

插入排序(insert sort)
快速排序(quick sort)
快速选择(quick select)

 堆排序(heap select)

 

http://stackoverflow.com/questions/1034846/finding-nth-item-of-unsorted-list-without-sorting-the-list/1036240#1036240
http://en.wikipedia.org/wiki/Quick_select

 

下面是我写的一些丑陋代码

 

def insert_sort(target,obj):
    if target[0]==None:
        target[0]=obj
        return target

    for i in xrange(len(target)):                       
        if obj>target[i] and (obj<target[i+1] or target[i+1]==None) :
            j = i+1
            k = len(target)-1
            while k>j:
                target[k] = target[k-1]
                k=k-1
            target[j] = obj
            break
    return target

target = [None for x in range(10)]

for x in [1,17,14,3,19,7,2,4,10]:
    print insert_sort(target,x)

 

 

参考:

程序员编程艺术:第三章、寻找最小的k个数

十三个经典算法研究与总结、目录+索引

 

分享到:
评论

相关推荐

    算法-基础算法- 排序算法(包含源程序).rar

    在这个压缩包“算法-基础算法- 排序算法(包含源程序).rar”中,你将找到关于排序算法的详细讲解以及可能包含的源代码实现。这篇文章将深入探讨排序算法的基本概念、类型以及它们在实际应用中的价值。 排序算法的...

    算法-基础算法- 模拟&思维(包含源程序).rar

    例如,排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序等,它们各有优劣,在不同场景下有不同的效率表现。搜索算法则包括深度优先搜索(DFS)和广度优先搜索(BFS),在解决迷宫问题、树遍历等问题时...

    算法-理论基础- 排序- 直接选择排序(包含源程序).rar

    提供的压缩包文件“算法-理论基础- 排序- 直接选择排序(包含源程序).pdf”可能包含更详细的解释、示例代码以及可能的性能分析。通过阅读这份文档,你可以深入理解直接选择排序的工作机制,学习如何编写对应的源...

    基础算法-python递归冒泡排序法

    【基础算法】-python递归冒泡排序法 # Python 中使用递归实现冒泡排序的方法: def bubble_sort_recursive(arr, n=None): if n is None: n = len(arr) if n == 1: return arr for i in range(n-1): if arr[i] ...

    图-Floyed算法-Dijkstra算法-拓扑排序算法(VC++程序)

    总的来说,Floyd算法、Dijkstra算法和拓扑排序算法是图论中的基础且实用的工具,它们在解决实际问题时具有广泛的应用。熟练掌握这些算法,不仅能够提升编程技能,还能为解决复杂问题提供有力的理论支持。

    经典算法-- 排序算法介绍

    排序算法是计算机科学中的基础且关键的部分,它在处理大量数据时扮演着重要角色。排序算法的效率直接影响到程序的运行速度,特别是在大数据量的情况下。衡量一个排序算法的性能主要看其时间复杂度,通常用大O符号(O...

    算法-理论基础- 排序(包含源程序).rar

    这个压缩包"算法-理论基础- 排序(包含源程序).rar"显然包含了关于排序算法的理论基础以及源代码实现,这对我们深入理解和实践这些算法提供了宝贵的资源。 首先,让我们探讨排序算法的理论基础。排序,简单来说,...

    算法-数据结构和算法-10-选择排序.rar

    在编程竞赛、数据结构与算法的学习中,选择排序是一个基础概念,有助于理解排序算法的基本原理。在实际编程中,尽管选择排序并不常用,但对于学习者来说,它是理解其他更高效排序算法(如快速排序和归并排序)的良好...

    排序算法-插入排序

    插入排序是一种基础且直观的排序算法,它的工作原理可以类比于整理扑克牌。在实际应用中,插入排序对于小规模数据或者部分有序的数据表现优秀,但对于大规模无序数据,其效率相对较低。以下是关于插入排序的详细知识...

    算法-数据结构和算法-11-插入排序.rar

    **插入排序**是一种基础且直观的排序算法,广泛应用于计算机科学和编程领域。它的工作原理类似于我们日常整理扑克牌的过程,逐步将未排序的元素插入到已排序的序列中,确保每次插入后序列都是有序的。 ### 插入排序...

    数据结构和算法-思维导图.pdf

    从提供的文件【标题】:"数据结构和算法-思维导图.pdf" 可以提炼出以下知识点: 1. **时间复杂度和空间复杂度分析**: - 最好、最坏、平均和均摊时间复杂度的概念,例如O(1)代表常数时间复杂度,适合散列列表的...

    零基础学算法--自己花钱买的资料

    【零基础学算法--自己花钱买的资料】 在学习算法的过程中,尤其对于初学者,找到一套合适的教程至关重要。"零基础学算法"是一个专为没有算法背景的初学者设计的学习资源,旨在帮助他们从零开始逐步掌握算法的基础...

    排序算法-StdDraw动态展示源码

    《排序算法-StdDraw动态展示源码》 在计算机科学中,排序算法是处理数据的一种基本技巧,它用于将一组无序的数据按照特定顺序排列。本项目提供的源码旨在通过StdDraw工具动态地展示各种排序算法的过程,帮助学习者...

    算法-数据结构和算法-9-冒泡排序.rar

    冒泡排序是一种基础且经典的排序算法,它的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序...

    《信息学竞赛宝典-基础算法》视频讲解-第7章 排序算法

    《信息学竞赛宝典--基础算法》,人民邮电出版社 c++基础算法视频讲解---第7章 第7章 7.1.1直接插入排序 7.1.2双关键字排序 7.1.3紧急集合 7.2.1求逆序对数 ...第07章 排序算法 第08章 高精度算法 第09章 搜索算法

    算法-数据结构和算法-1-算法的引入和算法时间复杂度.rar

    - O(n log n):这种复杂度通常出现在分治策略或排序算法中,如归并排序和快速排序。 - O(n^2):这是常见的低效复杂度,如冒泡排序和简单选择排序,当输入量增大时,执行时间会迅速增长。 了解并分析算法的时间...

    C#-基于C#实现的选择排序算法-Selection-Sort.zip

    总的来说,C#中的选择排序算法是一种基础排序算法,虽然在实际应用中可能不是最佳选择,但了解其原理和实现有助于提升对排序算法的理解。通过这个项目,你可以学习到如何在C#中编写排序算法,并进行实际的代码实践。

    算法基础--打开算法之门--托马斯H.科尔曼--王宏志-翻译

    这可能包括经典的排序算法如冒泡排序、选择排序、插入排序、快速排序和归并排序,以及查找算法如线性查找、二分查找等。这些基础算法不仅是初学者的必修课,也是进阶学习其他高级算法的基础。 托马斯H.科尔曼是算法...

    Java后端算法-冒泡排序和选择排序对比

    本文将深入探讨两种基础且常见的排序算法:冒泡排序和选择排序。这两种算法都是简单直观的排序方法,但它们在性能和适用场景上有所不同。 **冒泡排序**: 冒泡排序是一种交换排序,通过不断比较相邻元素并交换位置...

Global site tag (gtag.js) - Google Analytics