我的算法之旅是从排序开始的。
我还没有进行实践,先从思想上认识他吧。
1.桶排序:我这里直接把计数排序放在一起了,毕竟计数算法就是桶里只能放一个元素。
我们建立多个数组,然后进行分类,如“1~3,4~6”这样。
把不同的数进行分组,然后对每一个桶进行排序。再把桶按大小顺序输出。
2.冒泡排序:从第一个元素开始与后一个元素比较大小把大的放在后一个元素中,在与下一个元素进行比较,从而把大的元素不断向后推,就像大的泡泡不断升起的样子。
3.插入排序:选出一个元素,将其与前一元素进行对比,若小于则将前一元素移动到这一元素的位置,让这一元素再与下一个元素对比,不断重复,直到大于下一元素,则将本元素插入当前元素。
------------这里用到3个变量的转换,从而不会丢失变量。
4.选择排序:用第一个元素作为基础,对下一元素进行比较,记下被比较的两个元素中小的那个,不断向后比较,最后的结果要小于基础元素,那就把结果元素与基础元素进行换位。从而把最小的放在了第一个元素,以此类推。
5.快速排序:用两个哨兵形容这种算法,先确立基本元素,一般以第一个元素为基本元素。再左右两端分别放置哨兵1,2。哨兵1从左边走,走到大于基本元素的那一元素那里停下,哨兵2从右边走,走到小于基本元素的那里停下。交换他们发现的元素,不断重复,直到他们碰在了一起,将这一元素与基本元素换位。当以左边为基本数时要让右边的哨兵先走,从而让们相遇在小于基本元素的那一元素中,从而确立中间元素,在中间元素两边重复上述过程,直到哨兵一开始就站在一起。(sort函数真好用啊!)