Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 有没有办法计算排序算法的进度?_Sorting_Math_Dart_Shellsort - Fatal编程技术网

Sorting 有没有办法计算排序算法的进度?

Sorting 有没有办法计算排序算法的进度?,sorting,math,dart,shellsort,Sorting,Math,Dart,Shellsort,我试图在shell排序的基础上进行主观排序。我指的是原始的(唐纳德·谢尔的)算法。我已经做了所有的逻辑,它与shell排序完全相同,但不是计算机计算什么更大,而是用户主观地确定什么更大。 但问题是,我想向用户显示一个百分比或一些东西,让用户知道它已经在排序中走了多远。这就是为什么我想找到一个了解它的方法 我试着在这里提问(),但也许上次我没有很好地表达自己,所以他们结束了提问。 我首先尝试将进度与shell排序中数组中的传递次数相关联。但最近,我注意到这不是一个固定的数字。因此,如果您知道如何以

我试图在shell排序的基础上进行主观排序。我指的是原始的(唐纳德·谢尔的)算法。我已经做了所有的逻辑,它与shell排序完全相同,但不是计算机计算什么更大,而是用户主观地确定什么更大。 但问题是,我想向用户显示一个百分比或一些东西,让用户知道它已经在排序中走了多远。这就是为什么我想找到一个了解它的方法

我试着在这里提问(),但也许上次我没有很好地表达自己,所以他们结束了提问。 我首先尝试将进度与shell排序中数组中的传递次数相关联。但最近,我注意到这不是一个固定的数字。因此,如果您知道如何以最佳方式显示排序进度,我将非常感谢

我做了这个公式,根据通过的次数按颜色显示,这是我能得到的最接近的,但它与颜色列表的最大范围并不完全匹配。 (省道/颤振代码)

List<Color> colors = [
    Color(0xFFFF0000),//red
    Color(0xFFFF5500),
    Color(0xFFFFAA00),
    Color(0xFFFFFF00),//yellow
    Color(0xFFAAFF00),
    Color(0xFF00FF00),
    Color(0xFF00FF00),//green
  ];
[...]
style: TextStyle(
    color: colors[(((pass - 1) * (colors.length - 1)) / sqrt(a.length).ceil()).floor()]
),
[...]
color: colors[(((pass - 1) * (colors.length - 1)) / (log(a.length) / log(2)).floor()).floor()]),