C语言中冒泡法排序怎么理解?还有那些排序方法?
冒泡排序是一种最简单也是最常用的一种排序算法。
以升序排列为例:其基本思路就是依次比较两个相邻元素的大小,若第一个元素比第二个元素大,则进行互换
还有快速排序、插入排序、希尔排序、选择排序、堆排序、归并排序等
冒泡算法是一种容易理解的排序算法,其精髓就是每次把未排好序的子组中最大(或者最小)的排到顶该子组的最前面。
排序算法有好几百种(这个B站有个叫 算机科学速成课 的视频,13讲就介绍了这个),不过常见的都已经有库支持实现,只需要调用库函数就好。
冒泡排序:遍历待排序的数组,将最大数(或者最小值)不断移到最左边(或者最右边)。
如果从小到大排列就从最后一个球个前面一个数比较,然后小的数放坐边依次排列,你可以参考下图就能看懂,不过这种算法效率比较低
冒泡排序就是假设要从小往大排,那先从头开始遍历一遍,如果将前面那个数与后面那个数对比,如果前面那个数大的,就交换两个数的位置,如此循环多次,直到不再需要交换为止,这种方法需要循环多次,很慢
有一种冒泡排序改进过来的选择排序法,就是每次找到要排序的极值,然后放到当前参与排序的数组最前面那里,这次选出的极值下次不再参与