交换排序

作者: 阿凡提说AI | 来源:发表于2017-02-04 10:19 被阅读11次

冒泡排序

冒泡排序算法的运作如下:(从后往前)
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


maopo.jpg

快速排序

基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
一趟快速排序的算法是:
1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;
2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];
3)从j开始向前搜索,即由后开始向前搜索(j--),找到第一个小于key的值A[j],将A[j]和A[i]互换;
4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换;
5)重复第3、4步,直到i=j; (3,4步中,没找到符合条件的值,即3中A[j]不小于key,4中A[i]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。找到符合条件的值,进行交换的时候i, j指针位置不变。另外,i==j这一过程一定正好是i+或j-完成的时候,此时令循环结束)。

快速排序.jpg

相关文章

  • 排序算法之交换排序

    利用交换数据元素的位置进行排序的方法称为交换排序。常见的交换排序方法有冒泡排序和快速排序。 1. 冒泡排序 1.1...

  • 【数据结构】【C#】019-交换类排序:🌓冒泡排序(稳定)(重要

    交换排序:冒泡排序 ( 相邻比序法 )(稳定) 冒泡排序是一种简单的交换类排序方法,它是通过相邻的数据元素的交换,...

  • 交换排序法

    交换排序法是指借助于数据元素之间的相互交换进行排序的一种方法。冒泡排序与快速排序法都属于交换排序法。 冒泡排序法的...

  • 排序

    稳定排序 不稳定排序 交换排序 选择排序

  • 冒泡排序

    冒泡排序,属于内部排序中的交换排序。

  • 排序

    Haskell描述 插入排序 交换排序 选择排序

  • 05.交换类排序(冒泡排序,快速排序)

    05.交换类排序(冒泡排序,快速排序) 1、 交换类排序 基本思想: 两两比较待排序记录的关键字,如果发生逆序(...

  • iOS - 冒泡排序

    Demo_github 冒泡排序 冒泡排序(Bubble Sort)是一种交换排序。两两比较待排序的关键字,并交换...

  • 交换类排序算法-冒泡排序、快速排序

    交换类排序 1.冒泡排序 2.快速排序 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用...

  • 冒泡、快排、归并

    冒泡排序 排序原理: 设置i代表交换趟数,设置j代表交换元素,设置交换标志done 将初始趟数i=1,交换标志do...

网友评论

    本文标题:交换排序

    本文链接:https://www.haomeiwen.com/subject/qmldittx.html