常用排序算法实现
以上是排序算法的时间复杂度
下面是具体实现:
template<typename T>
void bubbleSort(T arr[],int len){
T temp;
for (int i = 0; i < len; i++)
{
for (int j = 0; j < len - i-1; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
}
template<typename T>
void selectSort(T arr[], int len)
{
T temp;
for (int i = len -1; i > 0; i--)
{
int min = i;
for (int j = 0; j < i; j++)
{
if (arr[j] > arr[min])
{
min = j;
}
}
if (min != i) {
temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
template<typename T>
void insertSort(T arr[], int len)
{
T temp;
//int arr[7] = { 1,9,7,3,8,5,7 };
for (int i = 1; i < len; i++)
{
int getIdx = i;
temp = arr[i];
for (int j = i; j > 0; j--)
{
if (temp < arr[j-1])
{
arr[j] = arr[j - 1];
getIdx = j - 1;
}
else
{
break;
}
}
if (getIdx != i) {
arr[getIdx] = temp;
}
}
}