冒泡排序是一种流行但低效的排序算法,它的原理是反复交换未按次序排序的元素,可以做下了解不过真的没什么价值。
代码如下:
void BubbleSort(int* arr, int len) {
for (int i = 0; i < len; i++) {
for (int j = len - 1; j > i ; j--) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
}
}
以测试排序数组{ 31,41,59,26,41,58 }为例,上图为BubbleSort执行过程的输出,前三行为第一次外层总循环,第四行为第二次外层总循环,最后一行为第三次外层总循环。
这个过程清晰地展示出来冒泡排序的原理,其时间复杂度跟插入排序类似(个人认为不如插入排序)。
如果刚学算法强推上篇博文~