排序算法
1. 快速排序
核心思想
- 选定Pivot中心轴
- 将大于Pivot的数字放在Pivot的右边
- 将小于Pivot的数字放在Pivot的左边
- 分别对左右子序列重复前三步操作(递归)
实现代码
void QuickSort(int arry[], int L, int R)
{
if (L >= R)
return;
int left = L, right = R;
int Pivot = arry[left];
while (left < right)
{
while (left < right && arry[right] >= Pivot)
{
right--;
}
if (left < right)
{
arry[left] = arry[right];
}
while (left < right && arry[left] <= Pivot)
{
left++;
}
if (left < right)
{
arry[right] = arry[left];
}
if (left >= right)
{
arry[left] = Pivot;
}
}
QuickSort(arry, L, right-1);
QuickSort(arry, right + 1, R);
}
2. 选择排序
核心思想
实现代码
void selectionSort(int arry[], int len)
{
if (arry == NULL || len < 2)
return;
for (int i = 0; i < len; i++)
{
int minIndex = i;
for (int j = i + 1; j < len; j++)
{
if (arry[j] < arry[minIndex])
minIndex = j;
}
if (minIndex != i)
{
int temp = arry[i];
arry[i] = arry[minIndex];
arry[minIndex] = temp;
}
}
}
排序算法随着学习会持续更新,敬请关注作者!! 欢迎各位大佬的点赞、评论和收藏! 微信搜索关注【E O F】
|