交换排序法
概念
所谓的交换排序法是指借助数据元素之间的相互交换进行排序的一种方法
冒泡排序法
1.有多少个元素就进行多少轮的循环
2.每一轮,不断的将两个相邻的元素比较,然后交换位置,第一轮就得到了一个最值放在最后,其他元素再重复操作直到有序
3.下一轮的比较中,不再比较上一轮得到的最大值。
最坏情况的比较:n(n-1)/2次
快速排序法
取出一个元素,将大于该元素的放在一边,小于该元素的放在一边,将线性表分成了两部分,再对两边进行同样操作直到有序
最坏情况的比较:n(n-1)/2次
注意:实际过程中,快速排序法比冒泡排序法快
插入排序法
概念
所谓插入排序法是指将无序的各元素插入到有序的线性表中
简单插入法
把第一个元素当成有序表,取后面的元素,依次插入到有序表中,插入的原则是小的插到前面,大的插到后面直到有序
最坏比较:n(n-1)/2次
希尔排序法
将整个无序列表分成若干个小的子序表分别进行排序
比较:n^1.5
选择排序法
概念
选择排序法是指从整个线性表中选择一个最值,将它交换到最前面,剩余的也是同样的操作
简单选择法
扫描整个线性表,取出最小值放在前面,后续元素同样操作直到有序
比较:n(n-1)/2次
堆排序法
对于满二叉树进行选择排序,原则是跟结点最大,父结点大于子结点
比较:N*log_2 N