八大排序算法~冒泡排序【加变量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 做用是为了优化算法,提高效率,,从第一个位置开始没有发生交换,说明后座都已经被对应实力的大数占完,没必要再为大数找后座了