NoteDeep

冒泡排序 Bubble Sort

思想:

它重复地走访需要排序的数列,每一次都比较相邻两个元素,如果他们的顺序错误就把他们交换过来。 直到没有再需要交换的元素,该数列就排序完成。

优化:

  1. 优化一:定义一个flag判断每次循环是否没有交换,如果没有交换,代表已经排好序了
  2. 优化二:如果最后一次交换的j是下标为0的位置,代表已经排好序了
  3. 优化三:鸡尾酒排序(Cocktail Sort)(又名:双向冒泡排序 (Bidirectional Bubble Sort)、波浪排序 (Ripple Sort)、摇曳排序 (Shuffle Sort)、飞梭排序 (Shuttle Sort) 和欢乐时光排序 (Happy Hour Sort))
传统冒泡排序每次按照一个方向进行,鸡尾酒排序双向进行,每次排序确定最大值和最小值
以排序(49,38,65,97,76,13,27,14,10)为例,鸡尾酒排序只要访问一次序列就可以完成排序,但如果使用冒泡排序需要八次。但是在乱数序列的状态下,鸡尾酒排序和冒泡排序的效率都很差。

快速排序 Quick Sort

递归的典型运用

也有非递归的写法

思想:

通过一趟排序将待排序数据分割成独立的两部分,其中一部分的所有元素均比另一部分的元素小,然后分别对这两部分继续进行排序,重复上述步骤直到排序完成。

评论列表

    冒泡排序 Bubble Sort快速排序 Quick Sort