排序算法

1、冒泡排序

冒泡排序就是,两两之间对比,把小的放左边或者把大的放右边,每经过一次循环,最大(或者最小)就会被放到右边(或者对应左边),假设数组有n个元素,那么要对比n-1+n-2+...+1次,也即n(n-1)/2次。算法复杂度O(n²)。


image.png

2、选择排序

选择排序,把最小的一个元素选择出来,记录在一个变量里,游标从走边开始移动,这个游标要更换为选择出来的最小的元素。时间复杂度为O(n²)


image.png
image.png

3、插入排序

插入排序有两个游标,一个游标从左向右移动,另一游标从这个游标脱落,从右向左移动,当第二个游标处的值大于第一个游标处的值的时候,进行while循环,交换第二个游标和第二个游标左边的数,也即元素向右移动一个,当出了while循环的时候,也就是第二个游标所在的位置,是第一个游标所在数要插入的位置。

image.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简单来说,时间复杂度指的是语句执行次数,空间复杂度指的是算法所占的存储空间 时间复杂度计算时间复杂度的方法: 用常...
    Teci阅读 1,141评论 0 1
  • 搞懂基本排序算法 上篇文章写了关于 Java 内部类的基本知识,感兴趣的朋友可以去看一下:搞懂 JAVA 内部类;...
    醒着的码者阅读 1,247评论 3 4
  • 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面;不稳定:如果a原本在b的前面,而a=b,排序之后a可...
    意识流丶阅读 3,228评论 2 9
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,250评论 0 52
  • 人在面对新事物,新挑战的时候,本能的一个反应是排斥。抗拒,逃避。 那么比如说创业这事,是应该准备完全后再开始,还是...
    采蘑菇的小Timor阅读 289评论 0 0