#include<iostream>
#include<algorithm>
using namespace std;
//快排(最好结果是nlogn,最坏情况是n*n)
void QuickSort(int arr[], int L, int R)
{
int pivot = arr[(L + R) / 2];
int i = L;
int j = R;
while (i <= j)
{
while (arr[i] < pivot)
{
i++;
}
while (arr[j] > pivot)
{
j--;
}
if (i <= j)
{
swap(arr[i], arr[j]);
i++;
j--;
}
}
if (i < R)
{
QuickSort(arr, i, R);
}
if (j > L)
{
QuickSort(arr, L, j);
}
}
//插入排序(最好结果是n,最坏情况是n*n)
void InsertSort(int arr[],int len)
{
for (int i = 1; i < len; i++)
{
int key = arr[i];
while (arr[i - 1] > key)
{
arr[i] = arr[i - 1];
i--;
if (i == 0)
{
break;
}
}
arr[i] = key;
}
}
//选择排序(最好结果是n*n,最坏情况是n*n)
void SelectSort(int arr[], int len)
{
for (int i = len; i&
面试常考排序算法
最新推荐文章于 2024-07-28 12:57:19 发布
本文详细探讨了面试过程中经常遇到的排序算法,包括快速排序、归并排序、堆排序以及冒泡排序等,分析它们的时间复杂度、空间复杂度及适用场景,帮助读者深入理解各类排序算法的原理与实现。
摘要由CSDN通过智能技术生成