排序算法(一):三种简单排序

一、冒泡排序   

    顾名思义,这种排序就像气泡一样,最大值,一点一点的向最后一位移动。有一种比较常用的说法,该算法可以当成是一大排只能看到左右位置人(身高)的人。首先第一个位置的人比较其下一个位置比较,若下一个位置的小于(大于)其,交换位置。然后以下一个位置开始(经过上一次比较,上一次必小于(大于)其),然后再次操作,直到移动到最后一个位置。那么最后一个位置必为最大值。如下代码


    这里i可以当作是遍历次数,如第一次遍历,比较总是-1次,然后j为上述聚焦的那个点,(交换位置的点),因为这里只有在前位置大于后位置的时候换位置,因此,该排序是稳定的。

二、选择排序

这里改进了冒泡排序,如下代码


    但选择排序不是一种稳定的排序,会打乱相同值的默认次序。

三、插入排序

    插入排序先假设在一个位置之前的元素是有序的,那么,在一个有序的数组里面遍历十分快,以这个为理念,当一个元素之前的元素为一个时候,它决定是有序的,那么就可以就此建立循环了,如下代码。

    而插入排序的位置移动十分的频繁,因此,希尔排序大大的简书了位置的交换,它以一个增量为分隔,取出一组数组,对其进行排序,并将其左移。第二次减少增量,再次操作,直到增量为1,得到结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容