欢迎光临
我们一直在努力

6.2 冒泡排序算法

在数组的查询遍历中,相邻的2个元素值根据排序条件(升序或者降序)进行位置的互换

比如升序排序,从相邻的2个元素对比小的值会交换到靠下标0的方向

防抖锁: 设置间隔锁,间隔时间内程序只触发一次

节流锁: 设置状态锁,为true时程序正常运行,为false时程序结束运行.

int arr[] = {3,2,9,1,7,8,4,5,6};
int size = ArraySize(arr);
for(int i = 0; i < size; i++)
{
   // 节流锁
   bool lock = false;
   for(int j = 0; j < size - 1; j++)
   {
       if(arr[j] > arr[j + 1])
       {
          int temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp; 
          lock = true;
       }   
   }
   if(lock == false) break;

   printf("主循环次数:%i,排序后的结果:[%i, %i, %i, %i, %i, %i, %i, %i, %i]",
      i,arr[0],arr[1],arr[2],arr[3],arr[4],arr[5],arr[6],arr[7],arr[8]);
}


// 降序排列

int arr3[] = {3,2,9,1,7,8,5,6,4};
int size = ArraySize(arr3);
for(int i = 0; i < size; i++)
{
   // 节流锁
   bool lock = false;
   for(int j = 0; j < size - 1; j++)
   {
       if(arr3[j] < arr3[j + 1])
       {
          int temp = arr3[j];
          arr3[j] = arr3[j + 1];
          arr3[j + 1] = temp; 
          lock = true;
       }   
   }
   if(lock == false) break;
}
 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:瓜皮猫量化编程 » 6.2 冒泡排序算法
分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

瓜皮猫量化交易编程

QQ群: 492653640微信: guapitcom
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活