【前言】
学习算法,开始了!
【正文】
首先,从整体的角度看,算法大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法,厄米变形模型,随机森林算法。(这块是从百度上搜的,大家了解一下。)
今天呢,我就说一下,我就对排序算法中的选择排序,说一下个人的理解。这是网上的一段经典的演示视频舞动的选择排序。
看完这段视频,相信你已经明白了这若干的无序的数字是如何比较与交换的,了解了整个选择排序的过程。很简单嘛!就是很多个数字站成一排,让第一个位置成为最小或者最大的位置(往后默认为是升序排序法),然后假定第一个数为最小,让第一个数和后面的数依次比较,如果后面的数比第一个数小,就和他交换位置,然后在最小位置上的数一直往后比较,交换。第一轮应该比较N-1次。当第一轮结束时,第一个位置上的数就是最小的数,接着开始第二轮,假定第二个位置上的数为剩下的数中最小的,重复之前的步骤。第二轮比较N-2次。最后,要比较N-1轮。
自此过程中,N-1轮说的是外循环,比较N-i次说的是内循环。
以上说的是基本思想,接下来看代码实现:
【总结】