我想计算C#中冒泡排序算法的时间。但它总是给0.这是我的代码。
public void bubbleSort(int[] arr, ref double time)
{
var sp = new Stopwatch();
sp.Start();
int temp = 0;
for (int i = 0; i < arr.Length; i++)
{
for (int sort = 0; sort < arr.Length - 1; sort++)
{
if (arr[sort] > arr[sort + 1])
{
temp = arr[sort + 1];
arr[sort + 1] = arr[sort];
arr[sort] = temp;
}
}
}
sp.Stop();
time = sp.Elapsed.Milliseconds*1000;
}
在主要时间总是0.我在这段代码中做了什么错误。
答案 0 :(得分:5)
当您获得Milliseconds
时,您只能获得当时的毫秒组件。因此,1.0501s仅列为50ms,而不是1050.1ms。此外,由于这会返回int
,因此不会看到小数毫秒,这可能就是这么短的算法。
相反,使用TotalMilliseconds
,它将以毫秒为单位返回整个时间,并重新调整double
- 包括小数部分。
答案 1 :(得分:3)