您的位置:首页 > 理论基础 > 数据结构算法

快速排序

2015-11-08 11:39 204 查看
template<typename T>
void Sort(T arrayT[], int begin, int end)
{
int low = begin;
int high = end;

int key = arrayT[low];
while (low < high)
{
// 从后面找比key小的值
while(arrayT[high] >= key && high > low)
--high;

if (high <= low)
break;
arrayT[low] = arrayT[high];

while(arrayT[low] <= key && low < high)
++low;

if (high <= low)
break;

arrayT[high] = arrayT[low];
}

arrayT[low] = key;

if (low <= high)
{
if (begin < low - 1)
Sort(arrayT, begin, low - 1);

if (end > high + 1)
Sort(arrayT, high + 1, end);
}
}


快速排序是稳定的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构 排序