再次重复前两个步骤

来源:互联网 发布:淘宝贷款10万不还 编辑:程序博客网 时间:2024/05/16 05:02
该算法中最令人困惑的部分是另一个循环(称为嵌套循环)的循环。外环(指数)遍历每个元素一个接一个。每一次迭代中的外环、内环(currentindex)是用来在剩下的阵列中找到最小的元素(从startIndex + 1)。smallestindex跟踪由内环发现最小的元素的索引。然后smallestindex是交换的字符。最后,外环(指数)提出的一个元素,和重复的过程。
提示:如果你有麻烦弄清楚上面的程序是如何工作的,它可以有助于通过一张纸上的一个示例案例。写出发(无序)水平在试卷顶端的数组元素。画箭头指示元素startIndex currentindex,和smallestindex索引。手动跟踪程序和重绘箭头作为指标变化。对于每一个外环的迭代,开始一个新的线显示阵列的当前状态。
排序名称使用相同的算法。只需改变数组的类型从int到std::string,并用适当的值初始化。
测验
1)手动显示以下数组中的选择排序方式:{ 30,60,20,50,40,10 }。显示每次发生的交换后的数组。
2)重写选择排序代码以降排序(最大数为第一)。虽然这似乎是复杂的,它实际上是令人惊讶的简单。
3)这将是困难的,所以把你的游戏脸上。
另一个简单的排序被称为“泡沫排序”。通过比较相邻的元素对,对它们进行分类,并将它们交换,如果条件满足,那么元素的“泡沫”到数组的结尾。虽然有相当多的方法来优化的冒泡排序,这个测验我们就坚持用未优化的版本在这里因为它是简单的。
未经优化的冒泡排序执行以下步骤来从最小到最大数组排序:
比较数组元素0与数组元素1。如果元素0更大,用元素1交换它。
B)现在做相同的元素1和2,和每一个后续的元素,直到你击中数组的结束。在这一点上,数组中的最后一个元素将被排序。

c)再次重复前两个步骤,直到数组被排序。


以前所有的课程都有一个共同点--他们都是非面向对象的。现在你已经对这些概念的一个基本的处理,我们可以进行面向对象编程(OOP),其中真正的收益!
在传统的编程中,程序基本上是向计算机的指令列表,通过定义数据(通过变量),然后使用这些数据(通过语句和函数)。数据和工作在该数据的功能是单独的实体,这些实体结合在一起,以产生所需的结果。
那么什么是面向对象的编程呢?与许多事情一样,它也许是最容易理解的,通过使用一个比喻。看看你周围-你看起来都是对象。对象有两个主要成分:1)列出相关的特性(如重量、颜色、大小、硬度、形状等),和2)的一些行为,他们可以展示(例如被打开,使东西热,等..)。这些属性和行为是不可分割的。
与传统的编程,属性(数据)和行为(功能)是独立的实体,这意味着传统的编程往往不提供一个非常直观的现实代表。它是由程序员来管理和连接的属性以适当的方式的行为。
面向对象编程(OOP)为我们提供了设计一个“对象”的能力,其属性和行为联系在一起,成为一个独立的、可重复使用的包装。这允许以一个更模块化的方式编写程序,这使得它们更容易编写和理解,同时也提供了更高程度的代码重用性。对象也提供了一个更直观的方式来与我们的数据,使我们能够定义我们如何与对象交互,以及它们如何与其他对象进行交互。注意,OOP并不取代传统的编程方法。相反,它给你额外的工具,在你的编程工具带管理的复杂性,当需要。
面向对象的编程也带来了一些其他有用的概念表:继承,封装,抽象和多态性(语言设计者有一个理念:永远不要使用一个小字,一个大的人会做的)。我们将在接下来的几章中,在即将到来的教程中覆盖所有这些概念。这是一个很大的新材料,但一旦你已经正确地了解OOP,你可能永远都不想回到传统的纯编程了。


0 0