算法探究之选择排序

来源:互联网 发布:乐清市知临中学 编辑:程序博客网 时间:2024/06/09 15:20

        放假之前,米老师讲了一节很重要的课。讲的是对于算法代码的抽象总结。让我受到了很大的震撼。我这才感到学习算法的重要性,对于之前的漫不经心,我感到甚是惭愧。于是今天正式开始研究算法。

        首先,从整体的角度看,算法大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。(这块是从百度上搜的,大家了解一下。)

        今天呢,我就说一下,我就对排序算法中的选择排序,说一下个人的理解。这是网上的一段经典的演示视频舞动的选择排序。

        看完这段视频,相信你已经明白了这若干的无序的数字是如何比较与交换的,了解了整个选择排序的过程。很简单嘛!就是很多个数字站成一排,让第一个位置成为最小或者最大的位置(往后默认为是升序排序法),然后假定第一个数为最小,让第一个数和后面的数依次比较,如果后面的数比第一个数小,就和他交换位置,然后在最小位置上的数一直往后比较,交换。第一轮应该比较N-1次。当第一轮结束时,第一个位置上的数就是最小的数,接着开始第二轮,假定第二个位置上的数为剩下的数中最小的,重复之前的步骤。第二轮比较N-2次。最后,要比较N-1轮。

        自此过程中,N-1轮说的是外循环,比较N-i次说的是内循环。

        以上说的是基本思想,接下来看代码实现:





         
0 0
原创粉丝点击