_GT C++算法分析器开源项目

我要开发同款
匿名用户2015年06月08日
124阅读
开发技术C/C++
所属分类程序开发、数学计算
授权协议GPL

作品详情

算法分析工具可以用于观察数组的变化,变量的计算过程,能够辅助分析排序算法,STL算法,数值算法等。最后给出了使用手册,并不完整,具体的细节可以参照源文件中的"gt.h", “GuardConfig.h”, "manual.hpp" 

关于数值计算

[cpp] viewplaincopy

#include "gt.h"    int main(void)  {      AddId("id_Pi")("id_r");     // 为后面的变量命名用于跟踪输出到控制台,函数后面可以添加任意个参数      Double Pi = 3.1415926, r;      r = 4.1;            AddId("id_perimeter")("id_area");   // 为后面的变量命名用于跟踪输出到控制台      Double perimeter, area;      perimeter = 2 * Pi * r;      area = Pi * pow(r, 2);      return 0;  }

  控制台自动输出

[cpp] viewplaincopy

EXPRES:id_Pi = 3.141593  EXPRES:id_r = 4.1  EXPRES:id_perimeter = (2*3.141593)*4.1  EXPRES:id_area = 3.141593*pow(4.1, 2)

希尔排序代码

[cpp] viewplaincopy

#include "gt.h"    const unsigned int N = 4;                       // 下面数组的长度  const unsigned int SellNum[N] = {7, 3, 1};  // 最后一个数值必须是 1    void ShellSort(IntPtr arr, int length) {      for(int n=0; n<N; n++) {          int increase=SellNum[n];          for(int i=0; i<increase; i++) {              for(int j=i+increase; j<length; j+=increase) {                  for(int k=j; arr[k-increase]>arr[k]; k-=increase) {                      int temp = arr[k];                      arr[k] = arr[k-increase];                      arr[k-increase] = temp;                      if(k-2*increase < 0)break;                  }              }          }      }  }    int main(void)  {      int a[] = {3, 1, 3, 63, 11,2, 5,23, 51};      IntArr arr(a);      ShellSort(arr, 9);      for(int i=0; i<9; i++) {          printf("%d  ", arr[i]);      }      return 0;  }

希尔排序对应控制台的输出

[cpp] viewplaincopy

EXPRES:GT[6] = GT[3]    1   3   63   11   2  [63]  23   51     EXPRES:GT[3] = 5    1   3  [5]  11   2   63   23   51     EXPRES:GT[5] = GT[2]    1   3   5   11  [3]  63   23   51     EXPRES:GT[2] = 2    1  [2]  5   11   3   63   23   51     EXPRES:GT[1] = GT[0]   [3]  2   5   11   3   63   23   51     EXPRES:GT[0] = 1    3   2   5   11   3   63   23   51     EXPRES:GT[2] = GT[0]    3  [3]  5   11   3   63   23   51     EXPRES:GT[1] = 2   [2]  3   5   11   3   63   23   51     EXPRES:GT[5] = GT[4]    2   3   5   11  [11]  63   23   51     EXPRES:GT[4] = 3    2   3   5  [3]  11   63   23   51     EXPRES:GT[4] = 5    2   3   5  [5]  11   63   23   51     EXPRES:GT[3] = 3    2   3  [3]  5   11   63   23   51     EXPRES:GT[7] = GT[3]    2   3   3   5   11   63  [63]  51     EXPRES:GT[6] = 23    2   3   3   5   11  [23]  63   51     EXPRES:GT[8] = GT[3]    2   3   3   5   11   23   63  [63]    EXPRES:GT[7] = 51    2   3   3   5   11   23  [51]  63
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论