欢迎光临
我们一直在努力

MT5(C++)软件编程-冒泡算法排序

  1. MT5(C++)软件编程十大排序算法 - 冒泡排序算法 (bubble Sort)
  2. MT5(C++)软件编程十大排序算法 - 选择排序算法 (select Sort)
  3. MT5(C++)软件编程十大排序算法 - 插入排序算法 (insert Sort)
  4. MT5(C++)软件编程十大排序算法 - 快速排序算法 (quick Sort)
  5. MT5(C++)软件编程十大排序算法 - 希尔排序算法 (shell Sort)
  6. MT5(C++)软件编程十大排序算法 - 堆排序算法 (heap Sort)
  7. MT5(C++)软件编程十大排序算法 - 归并排序算法 (merge Sort)
  8. MT5(C++)软件编程十大排序算法 - 计数排序算法 (counting Sort)
  9. MT5(C++)软件编程十大排序算法 - 桶排序算法 (bucket Sort)
  10. MT5(C++)软件编程十大排序算法 - 基数排序算法 (radix Sort)

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

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

#property copyright "Copyright 2022, Author:阿龙."
#property link      "https://www.guapit.com"
#property description "MT5智能交易编程课程"
#property description "QQ: 8199231"
#property version   "1.00"

void OnStart()
  {
    // 冒泡排序算法
    
    // 升序排列 
    int arr[9] = {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]) // 3 > 2
        {
          int temp = arr[j]; // 3
          arr[j] = arr[j + 1]; // 2
          arr[j + 1] = temp; // 3
          lock = true;
        }
        // printf("主循环次数:%i,排序后的结果:[%i, %i, %i, %i, %i, %i, %i, %i, %i]",
        //   j,arr[0],arr[1],arr[2],arr[3],arr[4],arr[5],arr[6],arr[7],arr[8]);
       }
       
       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 arr2[9] = {2, 3, 9, 1, 7, 8, 4, 5, 6};
    int size = ArraySize(arr2);
    // 主循环
    for(int i = 0; i < size; i++)
    {
      // 节流锁
      bool lock = false;
      // 子循环
      for(int j = 0; j < size - 1; j++)
      {
        if(arr2[j] < arr2[j + 1]) // 2 < 3
        {
          int temp = arr2[j]; // 2
          arr2[j] = arr2[j + 1]; // 3
          arr2[j + 1] = temp; // 2
          lock = true;
        }
        // printf("主循环次数:%i,排序后的结果:[%i, %i, %i, %i, %i, %i, %i, %i, %i]",
        //   j,arr2[0],arr2[1],arr2[2],arr2[3],arr2[4],arr2[5],arr2[6],arr2[7],arr2[8]);
       }
       
       if(lock == false) break;
       printf("主循环次数:%i,排序后的结果:[%i, %i, %i, %i, %i, %i, %i, %i, %i]",
          i,arr2[0],arr2[1],arr2[2],arr2[3],arr2[4],arr2[5],arr2[6],arr2[7],arr2[8]);
     }
  }

学习冒泡算法传送门:

https://www.bilibili.com/video/BV1Gt4y1u7K9/

 收藏 (0) 打赏

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

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:瓜皮猫量化编程 » MT5(C++)软件编程-冒泡算法排序
分享到: 生成海报

评论 抢沙发

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

瓜皮猫量化交易编程

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

登录

忘记密码 ?

切换登录

注册

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