Quicksort字节交换

时间:2018-02-25 21:20:38

标签: c# binary quicksort

我有一个使用quicksort交换随机生成的双号的迷你项目。我必须使用byte来实现它。

file:///home/user/dirOfProject

我的交换方法

然后是我用来做的方法:

public override void Swap(double a, double b)
{
    Byte[] data;
    fs.Seek(prevNode, SeekOrigin.Begin);
    data = BitConverter.GetBytes(a);
    fs.Write(data, 0, 8);
    fs.Seek(currentNode, SeekOrigin.Begin);
    data = BitConverter.GetBytes(b);
    fs.Write(data, 0, 8);
}

这可能是什么问题?这些数字并没有按预期排序。无论以何种顺序排列,我只想让它起作用。只有这一行不起作用:public static void QuickSort(DataList items, int left, int right) { int i = left, j = right; double vid = items.Get((left + right) / 2); while (i <= j) { while (items.Get(i) < vid) i++; while (items.Get(j) > vid) j--; if (i <= j) { items.Swap(items.Get(j), items.Get(i)); i++; j--; } } if (left < j) QuickSort(items, left, j); if (i < right) QuickSort(items, i, right); } ,我的猜测是交换方法不正确?

0 个答案:

没有答案