namespace BackPackProblem
{
class Program
{
static void Main(string[] args)
{
int[] profit = { 3, 2, 7, 1, 4 };
BackPack _bp = new BackPack(profit);
int start = 0;
int end = profit.Length - 1;
_bp.quickSort(profit, start, end);
_bp.print();
}
}
class BackPack
{
private int[] profit;
public BackPack(int[] _profit)
{
this.profit = _profit;
}
//快速排序:一次划分算法
public int partiton(int[] array,int _start,int _end)
{
int start = _start;
int end = _end;
while (start < end)
{
while ((start < end) && (array[start] > array[end]))
{
end--;
}
if (start < end)
{
int temp = array[start];
array[start] = array[end];
array[end] = temp;
start++;
}
while ((start < end) && (array[start]>array[end]))
{
start++;
}
if (start < end)
{
int temp = array[start];
array[start] = array[end];
array[end] = temp;
end--;
}
}
return start;
}
//用快速排序法:实现对数组从大到下的排序
public void quickSort(int[] array,int start,int end)
{
if (start < end)
{
int pivot = partiton(array, start, end);
quickSort(array, start, pivot - 1);
quickSort(array, pivot + 1, end);
}
}
public void print()
{
for (int i = 0; i < profit.Length; i++)
Console.Write(profit[i] + " ");
Console.WriteLine();
}
}
}
快速排序算法(c#)实现
最新推荐文章于 2024-05-16 10:08:02 发布