冒泡排序(Bubble Sort)是一种典型的交换排序算法,通过交换数据元素的位置进行排序。
一、算法基本思想
(1)基本思想
冒泡排序的基本思想就是:从无序序列头部开始,进行两两比较,根据大小交换位置,直到最后将最大(小)的数据元素交换到了无序队列的队尾,从而成为有序序列的一部分;下一次继续这个过程,直到所有数据元素都排好序。
算法的核心在于每次通过两两比较交换位置,选出剩余无序序列里最大(小)的数据元素放到队尾。
参考:
http://blog.csdn.net/guoweimelon/article/details/50902597
快速排序
快速排序的原理:选择一个关键值作为基准值。比基准值小的都在左边序列(一般是无序的),比基准值大的都在右边(一般是无序的)。一般选择序列的第一个元素。
一次循环:从后往前比较,用基准值和最后一个值比较,如果比基准值小的交换位置,如果没有继续比较下一个,直到找到第一个比基准值小的值才交换。找到这个值之后,又从前往后开始比较,如果有比基准值大的,交换位置,如果没有继续比较下一个,直到找到第一个比基准值大的值才交换。直到从前往后的比较索引>从后往前比较的索引,结束第一次循环,此时,对于基准值来说,左右两边就是有序的了。
接着分别比较左右两边的序列,重复上述的循环。
https://www.cnblogs.com/hjy9420/p/5032309.html
http://blog.csdn.net/it_zjyang/article/details/53406764
分享到:
相关推荐
《算法大全》是一份详尽的资源,涵盖了各种算法和模型的深度解析,旨在为数学建模以及其他实际问题的解决方案提供理论支持和技术指导。在这个压缩包中,包含了一个名为"算法大全pdf"的文件,我们可以期待它是一个...
在这个"c语言的各种算法实现"主题中,我们将深入探讨C语言如何被用来构建和实现各种算法,这些算法是计算机科学和软件工程中的基石。 首先,我们从基础数据结构开始,如数组、链表、栈和队列。数组是最基本的数据...
"各种算法及matlab实现.zip"这个压缩包文件包含了大量的MATLAB代码实现,涵盖了50多种不同的算法,这些算法广泛应用于各个学科,包括计算机科学、工程、物理学、经济学以及生物信息学等。MATLAB是一种强大的数学计算...
标题“运动估计 OPENCV 各种算法的C++实现”表明,这个压缩包包含的是用C++编写的OpenCV运动估计算法代码。其中,"BM_RANSAC2"可能代表一种基于块匹配(Block Matching)和随机抽样共识(RANSAC)的运动估计算法实现...
"各种算法图"和"图形算法"是编程和数据结构学习的重要组成部分,尤其对于理解和优化程序性能至关重要。这个名为"30各种算法图形及画笔.rar"的压缩包文件很可能包含了用图形方式展示的30种不同算法,这样的可视化表示...
本资源"各种算法的Flash演示"提供了一种直观且生动的方式来理解这些复杂的概念。通过Flash动画,用户能够看到算法的实际运行过程,这对于学习和教学都是极其有价值的。 1. **排序算法**:包括冒泡排序、插入排序、...
VB编程源代码 30各种算法图形及画笔VB编程源代码 30各种算法图形及画笔VB编程源代码 30各种算法图形及画笔VB编程源代码 30各种算法图形及画笔VB编程源代码 30各种算法图形及画笔VB编程源代码 30各种算法图形及画笔VB...
凸优化各种算法的理论基础与matlab实现源码.zip凸优化各种算法的理论基础与matlab实现源码.zip凸优化各种算法的理论基础与matlab实现源码.zip凸优化各种算法的理论基础与matlab实现源码.zip凸优化各种算法的理论基础...
"30各种算法图形及画笔"的资源集包含了多种算法的图形实现,这些算法可能包括经典的排序算法、搜索算法以及几何图形的绘制方法。VB(Visual Basic)作为微软公司开发的一种面向对象的编程语言,是实现这些算法和图形...
本压缩包文件"各种算法 java和c语言两种实现"提供了多种算法的Java和C语言版本,旨在帮助开发者深入理解这两种语言在处理算法时的不同方式和效率。 首先,Java是一种面向对象的高级编程语言,具有自动内存管理、...
本资源"Java各种算法大全"包含了一系列与算法相关的Java源代码实现,旨在帮助开发者理解和掌握各类经典算法。 首先,我们要了解算法是什么。算法是一系列明确的指令,用于解决特定问题或执行特定任务。在编程中,...
"C语言各种算法源程序"这个资源包包含了多种C语言编写的算法实现,对于学习者和开发者来说是一个宝贵的参考资料。 首先,我们要理解什么是算法。算法是一系列明确的步骤,用于解决特定问题或完成特定任务。它们可以...
《各种算法的Flash演示》是一份集合了众多算法可视化演示的资源,对于学习和理解计算机科学中的算法有着极大的帮助。这些动态的Flash演示通过图形化的方式,将抽象的算法过程具象化,使得复杂的逻辑变得直观易懂。...
【标题】:“考试训练题(各种算法)”指的是一个包含多种算法练习题目的资源包,旨在帮助学习者提升算法理解与应用能力。这个资源可能包括了各种编程语言实现的算法题目,例如Python、Java、C++等,涵盖了排序、...
《算法培训教材(包含ACM、百度之星、各种算法)》是一份全面涵盖算法学习的资源集合,旨在提升你的算法理论知识与实践能力。这份教材不仅适用于初学者,也适合有一定基础并希望深入理解或强化算法技能的程序员。ACM...
资源内容:基于凸优化各种算法的matlab仿真(完整源码+说明文档+数据).rar 代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 适用对象:工科生、数学专业、算法等方向学习者。 作者介绍:某...
《算法图解源代码》是针对各种算法的实践性学习资源,涵盖了多种编程语言的实现。这个压缩包中包含了各种经典算法的详细源代码,旨在帮助开发者深入理解并掌握算法的核心概念。以下将对其中涉及的主要算法进行详细...
这份资料详尽地涵盖了各种算法,无论你是初学者还是经验丰富的程序员,都能从中受益匪浅。 首先,我们要明确算法的概念。算法是一系列精确的步骤,用于解决特定问题或完成特定任务。它们是计算机程序的基础,决定了...
用于教育目的,C# 实现的各种算法的集合。存储库是用 C# 实现的各种算法的集合。这些算法涵盖各种主题 从计算机科学、数学和统计学、数据科学、机器学习、工程学等。实现 及其相关文档旨在为教育工作者和学生提供...
【超全NOIP资料各种算法总结】 在编程竞赛领域,全国奥林匹克信息学竞赛(NOIP)是一项备受关注的赛事,旨在提升青少年的信息技术素养和编程能力。为了在NOIP中取得优异成绩,全面掌握各类算法至关重要。这份压缩包...