`
huihui920823
  • 浏览: 36968 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

常用的几种简单的内部排序方法

 
阅读更多

这几种排序方法分别为:冒泡排序,选择排序,插入排序,快速排序

1.冒泡排序:




思想:简单的说就是想办法把一堆数据中最大的数不停地往后边排。

代码:

<script src="https://code.csdn.net/snippets/279302.js" type="text/javascript"></script>

2.选择排序:

思想:在给定的一堆数据中找到最小的(或者最大的)数跟数据的第一个数交换(最后一个数交换),然后第二次再在排好的数据中(不要把排好的第一个数算在其中)找最小的(或者最大的)数跟数据的的第二个数(倒数第二个数)交换,以此类推,不断的进行下去,最后就OK了。
代码:
<script src="https://code.csdn.net/snippets/279326.js" type="text/javascript"></script>
3.插入排序:

思想:把n个待排序的元素看成一个有序表和一个无序表,开始时有序表中只有一个元素(那肯定是有序的),无序表中有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。
代码:
<script src="https://code.csdn.net/snippets/279372.js" type="text/javascript"></script>
4.快速排序:
思想:通过一趟排序将要排序的数据分隔成独立的两部分,其中一部分的所有的数据都要比另一部分的所有的数据都要小,然后再对于这两部分分别进行以上的操作,以此达到整个数据变成有序的数据。简单地说就是在一堆数据中找到这些数据中中间的那个数,然后把比这个中间数大的放在中间数的右边,比它小的数放在中间数的左边,然后再次递归一样的对于左边的数,和右边的数进行以上操作。
代码:
<script src="https://code.csdn.net/snippets/279416.js" type="text/javascript"></script>


最后,总体上分析一下这四种排序的效率:
速度(由小到大):
冒泡,选择,插入,快速
并且这些排序会随着数据量的增大,速度优势会更加明显。

快速排序速度比较快的原因是:前三种排序多是单个进程进行的,而快速排序是多进 程来实现排序的。但是快速排序进行排序时会占用特别多的内存(当你运用快速排序对一个特别大的数组进行排序时,你会发现你的内存突然间就上去了)。所以说快速排序的效率并不高,因为它会占用特别多的内存和CPU。

注意:在排序时,如果数据量比较大的话,就不要打印了,因为打印会占用特别多的CPU。







版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    几种内部排序算法总结

    几种内部排序算法总结!(冒泡排序、快速排序、直接插入排序、拆半插入排序、简单选择排序)

    内部排序算法比较 课程设计

    本演示程序对以下6种常用的内部排序算法进行实测比较:起泡排序,直接插入排序,简单选择排序,快速排序,希尔排序,堆排序。

    数据结构内部排序算法比较.doc

    (1)对以下6种常用的内部排序算法进行比较z起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。 (2)待排序表的表长不小于1005其中的数据要用伪随机数产生程序产生:至少要用5组不同的输入数据作比较...

    内部排序算法的比较

    对以下六种常用的内部排序算法进行比较:希尔排序、直接选择排序、快速排序、直接插入排序、堆排序、冒泡排序。

    数据结构--课程设计 内部排序算法比较,几大常用算法

    设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 【基本要求】 (1)实现各种内部排序。包括冒泡排序,直接选择排序,希尔排序,快速排序,堆排序。 (2) 待排序的元素的关键字为整数...

    7.1_内部排序算法排序.CPP

    1、常见排序算法实现(1-6选择几个算法练习) 1)问题描述:输入一组关键字序列分别实现下列排序。 (1)实现简单选择排序、直接插入排序和冒泡排序。 (2)实现希尔排序算法。 (3)实现折半插入排序。 ...

    常见的几种内排序算法以及实现(C语言)

    主要的内排序包括冒泡、插入、希尔、堆排序、归并、快速、桶排序等,本源码对其用C语言实现,并且进行了简答的测试,可以准确运行,其算法源码以及测试主程序都在源码文件main.c中

    内部排序的数据结构实验报告

    设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。 2.4运行环境 (1)WINDOWSXP系统 (2)C++ 编译环境 3.实验方法 本实验主要是内排序,通过比较的次数和移动的次数判断排序的好坏。...

    数据结构-几种内部算法的比较源代码

    对内部选择排序中常用的简单选择排序,树形选择排序,堆排序通过数据交换次数以及各种算法耗时的比较,来对各种算法进行分析比较

    基于JavaScript实现的插入排序算法分析

    下面介绍几种常见的内部排序方式: 插入排序 插入排序是一种最简单的排序方法,它的基本操作是将一个记录插入已排好序的有序表中,从而得到一个新的、记录数加1的有序表。 插入排序有两个循环,外循环将数组元素挨个...

    基于C语言实现的若干排序算法和分析

    讨论 了几种常见的内部排序算法及其时间复杂度: 插入排序、 起泡排序、 选择排序、 快速排 序、 希尔排序、 堆排序, 并且对这几种排序算法进行 了分析比较。着重提供 了希尔排序和堆 排序的实现程序, 以堆排序...

    视觉直观感受若干常用排序算法

    直观感受几种常用排序算法,具体内容如下 1 快速排序 介绍:  快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不...

    算法引论:一种创造性方法.[美]Udi Manber(带详细书签).pdf

    6.2 二叉搜索的几种形式 6.2.1 纯二叉搜索 6.2.2 循环序列的二叉搜索 6.2.3 二叉搜索特殊下标 6.2.4 二叉搜索长度未知的序列 6.2.5 重叠子序列问题 6.2.6 解方程 6.3 内插搜索 6.4 排序 6.4.1 桶排序和...

    Java经典编程源码基础例程300.zip

    实例070 实例化Class类的几种方式 107 实例071 查看类的声明 108 实例072 查看类的成员 110 实例073 查看内部类信息 112 实例074 动态设置类的私有域 113 实例075 动态调用类中方法 115 实例076 动态实例化类 116 ...

    java基础题 很全面

    51. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 13 52. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 13 53. 一个".java"源文件中是否...

    C++数据结构知识点与经典算法整理

    9、内部排序 28 2、排序算法的稳定性 29 3、C/C++实现 31 4、对排序算法的总结 41 11、数组和链表的优缺点 42 12、C++操作符优先级: 43 13、B树、B-树、B+树、B*树、红黑树和trie树 44 14、最小生成树算法之Prim算法...

    java面试宝典

    70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73...

    java面试题

    58. 排序都有哪几种方法?请列举。用JAVA实现一个快速排序。 40 59. 请对以下在J2EE中常用的名词进行解释(或简单描述) 40 59.1. web 容器 40 59.2. EJB容器 40 59.3. JNDI 40 59.4. JMS 41 59.5. JTA 41 59.6. JAF ...

    千方百计笔试题大全

    70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73...

Global site tag (gtag.js) - Google Analytics