八大排序算法~冒泡排序【加变量flag的作用】

八大算法~冒泡排序【加变量flag的作用】

  1,冒泡排序思想:从第一个数开始找,要把大数“排除在外”~为大数找后座。(从小到大排序哈)

  外层循环~需要放后的大数个数;
    内循环~从第一个数拿起与后面位置的数两两比较,实力强的占的位置靠后。

2,flag变量作用:优化算法,提升效率,从第一个位置开始没有发生交换,
说明后座都已经被对应实力的大数占完,不必再为大数找后座了。

void BubbleSort(int a[],int n){
    int temp;
    boolean flag = true;   // 此处flag变量的设置可以提高算法的效率
    //冒泡思想:从第一个数开始找,要把大数“排除在外”~为大数找后座
    for(int i = 0; i < n - 1; i++){ //外层循环~需要放后的大数个数
      flag = true;
      for(int j = 0; j < n - 1 - i; j++){//内循环~从第一个数拿起与后面位置的数两两比较,实力强的占的位置靠后
        if(a[j] > a[j + 1]){
          flag = false;
          temp = a[j];
          a[j] = a[j+1];
          a[j+1] = temp;
        }
      }
      if(flag==true) break;
    }
}
//flag 作用是为了优化算法,提升效率,,从第一个位置开始没有发生交换,说明后座都已经被对应实力的大数占完,不必再为大数找后座了 
原文地址:https://www.cnblogs.com/shan333/p/15054954.html