程序员必会排序算法之冒泡排序
2020-08-25 22:46
716 查看
冒泡排序
思想:相邻元素做比较,经过一趟排序把最大的元素沉到序列最后。在冒泡排序中经常会出现这种情况,经过几趟排序后所有元素已经有序排列,但是还没有到达循环结束的条件,这样后面的比较就没有意义了。可以通过加入一个标志位flag来进行优化,flag = 1 表示本趟排序没有元素交换,所有元素已经有序排列,可以结束。
#include <iostream> using namespace std; //冒泡排序 void bubbleSort(int array[], int len) { int flag = 1; for (int i = 0; i < len - 1; i++) { if (flag == 0) { break; } flag = 0; for (int j = 0; j < len - i; j++) { if (array[j] < array[j + 1]) { int temp = array[j + 1]; array[j + 1] = array[j]; array[j] = temp; flag = 1; } } } } //打印数组 void printArray(int array[], int len) { for (int i = 0; i < len; i++) { cout << array[i] << " "; } cout << endl; } int main() { int array[5] = { 1, 8, 3, 10, 2 }; int length = sizeof(array) / sizeof(array[0]); printArray(array, length); bubbleSort(array, length); printArray(array, length); return 0; }
相关文章推荐
- 2020.03.05 一维数组、二维数组、数组中的常见算法、数组排序中的冒泡排序;
- 冒泡排序----算法排序
- java第十一天---Scanner类及其方法,String类,StringBuffer类,数组高级算法(冒泡排序、选择排序、直接插入排序,快速排序即二分法查找)
- 排序算法之--冒泡排序
- 八大排序——冒泡排序的优化算法及性能分析(C语言)
- 如何理解插入排序、希尔排序、选择排序、冒泡排序、归并算法、快速排序
- 【算法-排序之一】冒泡排序
- 算法(一):选择排序和冒泡排序
- 排序算法之二----冒泡排序
- 算法——排序之冒泡排序优化
- 两种常用的交换排序算法--冒泡排序、快速排序
- 算法系列(三)排序算法上篇--冒泡排序插入排序和选择排序
- Golang实现排序算法之冒泡排序
- 数据结构与算法——冒泡排序,选择排序,直接插入排序
- 算法学习 - 归并排序,快速排序,冒泡排序
- 【算法-排序之一】冒泡排序
- 算法入门——part2.排序(插入排序、冒泡排序、选择排序)
- 算法 -- iOS开发用Objective_C / Swift3.0实现:快速排序 / 冒泡排序 / 选择排序
- 基础算法(一):选择排序和冒泡排序
- Java数据结构和算法总结-冒泡排序、选择排序、插入排序算法分析