插入排序特点
模拟扑克牌的排序;
平均O(N^2),最坏O(N^2),最好O(N) ,稳定
#include <iostream>
using namespace std;
template<typename T>
int length(T& arr)
{
return sizeof(arr) / sizeof(arr[0]);
}
void InsertSort(int arr[], int n);
void Print(int arr[], int n);
int main()
{
int arr[6] = { -3,-5,3,6,2,3 };
int n = length(arr);
InsertSort(arr, n);
Print(arr, n);
system("pause");
return 0;
}
void InsertSsort(int array[], int array_len)
{
for (int i = 1; i < array_len; i++)//手里有张牌arr[0],摸下一张arr[1]。。。
{
int new_ele = array[i];
int j = 0;
for (j = i; j > 0 && new_ele < array[j - 1]; j--)//新牌<旧牌
{
array[j] = array[j - 1];//依次后移
}
array[j] = new_ele;//新牌落位
}
}
void Print(int arr[], int n)
{
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout << endl;
}