如何分析一个排序算法? 分析一个排序算法的三要素:排序算法的执行效率、排序算法的内存消耗以及排序算法的稳定性。 排序算法的执行效率 对于排序算法执行效率的分析,一般是从以下三个方面来衡量: 最好情况、最坏情况、平均情况时间复杂度 时间复杂度的系数、常数、低阶 比较次数和交换 ...
一 选择排序 概念理解: 在一个长度为 的数组中,在第一趟遍历 个数据,找出其中最小的数值与第一个元素交换 第二趟遍历 个数据,找出其中最小的元素与第一个数交换 注意:这里的第一个数是指遍历的第一个数,实质上是数组的第二个数 而第三趟则是和自己比较,位置还是原来的位置 复杂度: 平均时间复杂度:O n 例子: 我们看一下打印的结果: 选择排序 结合概念就很好理解了。 二 冒泡排序 概念理解: 依次 ...
2018-09-04 20:02 0 1546 推荐指数:
如何分析一个排序算法? 分析一个排序算法的三要素:排序算法的执行效率、排序算法的内存消耗以及排序算法的稳定性。 排序算法的执行效率 对于排序算法执行效率的分析,一般是从以下三个方面来衡量: 最好情况、最坏情况、平均情况时间复杂度 时间复杂度的系数、常数、低阶 比较次数和交换 ...
测试结果: 时间单位:毫秒 1. 冒泡排序:5万个元素的排序:4157。 50万:430255。 100万:1644079 2. 选择排序:5万:727。 50万:74253。 100万:281276 3. ...
一、概述: 本文给出常见的几种排序算法的原理以及java实现,包括常见的简单排序和高级排序算法,以及其他常用的算法知识。 简单排序:冒泡排序、选择排序、插入排序(本篇博客) 高级排序:快速排序、归并排序、希尔排序(下篇博客) 相关算法知识:划分、递归、二分查找(下篇博客 ...
一、概述: 上篇博客介绍了常见简单算法:冒泡排序、选择排序和插入排序。本文介绍高级排序算法:快速排序和归并排序。在开始介绍算法之前,首先介绍高级算法所需要的基础知识:划分、递归,并顺带介绍二分查找算法。 二、划分: 划分是快速排序的前提,即把数据分为两组,大于特定值的数据在一组,小于 ...
插入排序 概念: 插入排序,顾名思义,在一组序列当中插入一个数,前提是在要插入数字的序列本身顺序是正确的,且插入数字后序列的顺序仍然有序。 思考方式: 如果要将一个数字插入到某一个数列当中,会将此数字与数列当中的所有数字进行比较过后插入。如果此这个数列的顺序是正确的,那么,只需用这个需要 ...
文章总结了几种常用排序算法: 冒泡排序,选择排序,插入排序,希尔排序,快速排序。 假设有一队棒球队员 如图3.1,3.2,需要对棒球队员进行排序: 我们知道计算机不能像人一样通揽所有棒球队员。计算机只能在同一时间内对两个队员进行比较,因此计算机只能一步步解决具体问题和遵循一些简单的规则 ...
一、堆排序 1、部分概念 满二叉树:深度为k,且含有(2^k)-1个结点的二叉树 完全二叉树:深度为k的,又n个结点的,当且仅当其每一个节点都与深度为k的满二叉树种编号从1至n的节点一一对应时,称为完全二叉树 堆的结构可以分为大根堆和小根堆,是一个完全二叉树 每个结点的值 ...
1、冒泡排序 (英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端 ...