七种排序C++版本(冒泡,选择,插入,希尔,归并,堆,快排)
冒泡排序
基本思想是相邻的两个数比较,逆序则交换,直到没有逆序的记录为止
常见解法
比较n-1趟,每趟都将最大的数放在当前的尾部,然后尾部前移
改进算法
每一趟比较时记录当前是否有元素发生了交换,如果有就继续下一趟的交换,如果没有说明所有的元素都有序了,不用进行下一趟比较了
eg:1,2,3,4,5,6,7,9,8;
第一轮结束后数组为:1,2,3,4,5,6,7,8,9
第二轮比较的时候发现:这一轮没有数据交换,所有的数据都有序
这里看上去第二轮也有点多余,那么此时将flag作为一轮比较后的逆序数,当逆序
原创
2021-03-07 16:49:10 ·
182 阅读 ·
0 评论