`
liulang203
  • 浏览: 55959 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

排序算法总结

阅读更多
一、主要排序算法由插入排序、中值排序、快速排序和堆排序四种
二、插入排序对小量数据并且初始数据几乎是有序的速度比较快,比如小于五个内容的数。但对大数据量的数据就比较差。
三、中值排序的平均情况为O(n log n),最坏情况为0(n的平方)的关键在于高效的从无序数组中选择出中值元素。中值排序退货成中枢值排序也就是快速排序
sort(A)
 medianSort(A,0,n-1)
end

medianSort(A,left,right)
if(left<right) then
 find median value A[me] in A[left,right]
 mid=(right+left)/2
 swap A[mid] and A[me]
 for i=left to mid-1 do
  if(A[i]>A[mid]) then
    find A[K] <= A[mid] where k>mid
    swap A[i] and A[k]
 medianSort(A,left,mid-1)
 medianSort(A,mid+1,right)
end

四、快速排序,平均情况O(n log n),最坏情况O(n平方)。在每一个递归步骤中把大小为n的数组都被切分成两个集合,如果其中一个集合为空,另外一个集合的大小为n-1,快速排序将退化成最坏的二次方行为。随机选择中枢值的算法使得快速排序在平均情况下表现的比其它排序算法要好。快递排序的各种优化
1、利用存储子任务的栈来消除递归
2、选择基于三中值分区中枢值
3、设定一个使用切分时数组长度的最小值,如果小于这个值,就使用插入排序。
4、当处理子数组的时候,首先将大的数组压入栈中,这样来最小化栈的总大小,确保小的问题首先被解决
选择中枢值的几种方式方法
1、选择第一个或最后一个
2、在A[left,left+n-1]中选择一个随机元素。
3、选择K中值,在A[left left+n-1]随便选择K个元素,然后选择这K个元素的中值班。
 sort(A)
  quickSort(A,0,n-1)
 end

quickSort(A,left,right)
 if(left<right) then
  pi=partition(A,left,right)
  quickSort(A,left,pi-1)
  quickSort(A,pi+1,right)
end

partition(A,left,right)
 p=select pivot in A[left,right]
 swap A[p] and A[right]
 store = left
 for i=left to right-1 do
  if(A[i]<=A[right] then
    swap A[i] and a[store]
    store++
 swap A[store] and A[right]
 return store
end
分享到:
评论

相关推荐

    常用排序算法总结 常用排序算法总结 常用排序算法总结

    常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结

    十大经典排序算法总结.docx

    《十大经典排序算法总结》 排序算法是计算机科学的基础,其设计思想和效率对软件的性能有着直接影响。本文主要探讨了十种经典的排序算法,包括它们的设计思路、优缺点以及适用场景,帮助我们理解排序算法的核心。 ...

    C#排序算法总结

    C#排序算法总结涵盖了交换排序和插入排序两大类排序算法,其中交换排序包括了冒泡排序、选择排序和快速排序,而插入排序则涉及直接插入排序和折半插入排序。下面将详细介绍每种排序算法的实现原理、特点以及在C#中的...

    各种排序算法总结(ppt)

    在这个名为“各种排序算法总结(ppt)”的资料中,我们将会深入探讨多种常见的排序算法,包括它们的基本原理、优缺点以及实际应用。** 首先,我们要了解排序的目的是为了使数据有序,这在数据处理和分析中具有广泛...

    八大排序算法总结

    【排序算法总结】 排序是计算机科学中的一项基本操作,它涉及到如何有效地重新排列一组数据,使其按照特定的顺序排列。本文将重点介绍八大排序算法,包括插入排序、希尔排序、交换排序、快速排序、选择排序、堆排序...

    排序算法总结——最全、最新的排序算法

    排序算法总结——最全、最新的排序算法 本文对各种排序算法进行了总结,包括插入排序、选择排序、冒泡排序、快速排序和堆排序等。下面是对每种排序算法的详细介绍: 一、插入排序(Insertion Sort) 插入排序是一...

    常见排序算法总结.pdf

    【排序算法总结】 排序算法是计算机科学中处理数据排列的重要工具,主要分为稳定排序和非稳定排序、内排序和外排序两大类。稳定排序保证了相同元素在排序后的相对位置不变,而非稳定排序则不作此保证。内排序是指...

    排序算法总结.doc

    排序算法是计算机科学中的基础概念,用于组织和整理数据,使其按照特定顺序排列。以下是对几种常见排序算法的详细说明: 1. 插入排序: 插入排序是一种简单的排序算法,其时间复杂度为O(n^2)。它通过将每个元素...

    常用排序算法总结

    ### 常用排序算法总结 #### 一、冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较相邻的两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行的,直到没有再需要...

    八大经典排序算法总结和源代码

    八大经典排序算法总结和源代码 在计算机科学中,排序算法是最基本也是最重要的算法之一。排序算法的性能直接影响到整个系统的性能。今天,我们将总结八大经典排序算法,并提供C++实现的源代码。 一、稳定排序和...

    八种常见排序算法总结(转)

    "八种常见排序算法总结" 直接插入排序是一种简单的排序算法,它的思想是每次选择一个元素 K 插入到之前已排好序的部分 A[1…i]中,插入过程中 K 依次由后向前与 A[1…i]中的元素进行比较。若发现 A[x]&gt;=K,则将 K ...

    数据结构中几种常用的排序算法总结

    ### 数据结构中几种常用的排序算法总结 #### 一、引言 在计算机科学与数学领域,排序算法是一种能够按照特定顺序(如数值顺序或字典顺序)排列一系列数据的算法。排序算法对于许多其他算法(如搜索算法和合并算法)...

    排序算法总结排序算法.png

    排序算法总结

    常用排序算法总结——数据结构

    常用排序算法总结 数据结构 ppt 课件知识 排序的复杂性 。

    几种内部排序算法总结

    ### 几种内部排序算法总结 #### 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,...

    排序算法总结(常见算法总结分析)

    【排序算法总结】 排序算法是计算机科学中一个基础且重要的概念,它用于组织和整理数据,使其按照特定的标准(如升序或降序)排列。本文将深入探讨三种常见的排序算法:选择排序、直接插入排序和冒泡排序。 1. **...

    各种排序算法总结

    常用排序算法总结,包括插入排序(InsertionSort),冒泡排序(BubbleSort),选择排序(SelectionSort),快速排序(QuickSort), * 二路归并排序(MergeSort),堆排序(HeapSort)。有每一种排序算法的复杂度分析以及实现...

    排序算法总结.pdf

    【排序算法总结】 排序算法是计算机科学中一种重要的算法,主要任务是对一组数据进行排列,使其按照特定的顺序呈现。本文将重点介绍几种基础的排序算法,包括它们的工作原理、性能特点以及适用场景。 1、**稳定度*...

Global site tag (gtag.js) - Google Analytics