基本排序(1)Swift

代码地址

冒泡排序(Bubble Sort)

算法实现:

  1. 比较相邻元素,根据条件(大小)交换位置。
  2. 从第一个元素开始,依次重复步骤1
  3. 重复根据元素数量,重复以上步骤,直到排序完成。
基本排序(1)Swift_第1张图片
20170117148465503587845.png

算法分析:

  1. 数据量为n,时间复杂度为n * (n-1) * 0.5,则为O(n²)。

简单选择排序(Simple Selection Sort)

算法实现:

  1. 在未排序的数据中,找到最小(最大)的跟第一个数据交换位置。
  2. 重复以上步骤,直到排序完成。
基本排序(1)Swift_第2张图片
20170117148465506255123.png

算法分析:

  1. 时间复杂度为O(n²)。

直接插入排序算法(Straight Insertion Sort)

算法实现:

  1. 取第一个的未排序的元素。
  2. 依次往前对比,插入适合的位置。
  3. 以第一元素为已经排序,开始重复步骤1,2直到排序完成
基本排序(1)Swift_第3张图片
20170117148465374599240.png

算法分析:

  1. 时间复杂度为O(n²)。

希尔排序算法(Shell Sort)

算法实现:

  1. 定义一个步调(gap),根据步调把数据分成组。
  2. 对每一组进行插入排序。
  3. 缩小步调,重复以上步骤,直到步调为1,完成排序。
基本排序(1)Swift_第4张图片
20170117148465558671801.png

算法分析:

  1. 时间复杂度为O(nlogn)。

你可能感兴趣的:(基本排序(1)Swift)