社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
快速排序的思想:我们
template<class T>
void quick_sort(T array[], int low, int high)
{
if (low > high)
return;
int i = low;
int j = high;
T key = array[i];
while (i < j)
{
while (i<j&&array[j]>key)
--j;
if (i < j)
array[i] = array[j];
while (i < j&&array[i] < key)
++i;
if (i < j)
array[j] = array[i];
}
array[i] = key;
quick_sort(array, low, i - 1);
quick_sort(array, i + 1, high);
}
//插入排序
template<class T>
void insert_sort(T array[], int length)
{
int i, j;
T temp;
for ( i = 1; i < length; i++)
{
temp = array[i];
for ( j = i; j>0 && array[j - 1] > temp; --j)
{
array[j] = array[j - 1];
}
array[j] = temp;
}
}
//选择排序
template<class T>
void select_sort(T array[], int length)
{
int index;
for (int i = 0; i < length - 1; i++)
{
index = i;
for (int j = i + 1; j < length; j++)
{
if (array[j] < array[index])
index = j;
}
//交换两个下标所对应地值
if (i != index)
{
T temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
}
//冒泡排序
template<class T>
void bubble_sort(T array[], int length)
{
T temp;
for (int i = 0; i < length - 1; i++)
{
for (int j = length - 1; j>0; j--)
{
if (array[j] < array[j - 1])
{
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
}
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!