#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void InsertSort(int* num, int len)
{
for(int i=0; i<len-1; i++)
{
for(int j=i+1; j>0; j--)
{
if(num[j] < num[j-1])
swap(num[j],num[j-1]);
else
break;
}
}
}
void BubbleSort(int* num, int len)
{
bool flag;
for(int i=0; i<len-1; i++)
{
flag = false;
for(int j=len-1; j>i; j--)
{
if(num[j] < num[j-1])
{
swap(num[j],num[j-1]);
flag = true;
}
}
if(!flag)
break;
}
}
void SelectSort(int* num, int len)
{
for(int i=0; i<len; i++)
{
for(int j=i+1; j<len; j++)
{
if(num[j] < num[i])
swap(num[j],num[i]);
}
}
}
void QuickSort(int* num, int left, int right)
{
if(left < right)
{
int i = left, j = right, key = num[left];
while(i < j)
{
while(i<j && num[j] >= key)
j--;
if(i < j)
num[i++] = num[j];
while(i<j && num[i] < key)
i++;
if(i < j)
num[j--] = num[i];
}
num[i] = key;
QuickSort(num, left,i-1);
QuickSort(num, i+1,right);
}
}
void ShellSort(int* num, int len)
{
int gap;
for(gap = len/2; gap>0; gap/=2)
for(int i=0; i<gap; i++)
{
for(int j = i+gap; j<len; j+=gap)
{
for(int k=j; k>i; k-=gap)
{
if(num[k] < num[k-gap])
swap(num[k], num[k-gap]);
else
break;
}
}
}
}
void Merge(int* num,int left, int mid, int right, int* tmp)
{
int i = left;
int j = mid+1;
int t = 0;
while(i<=mid && j<=right)
{
if(num[i] < num[j])
tmp[t++] = num[i++];
else
tmp[t++] = num[j++];
}
while(i<= mid)
tmp[t++] = num[i++];
while(j<= right)
tmp[t++] = num[j++];
t = 0;
while(left <= right)
num[left++] = tmp[t++];
}
void MergeSort(int* num, int left, int right, int* tmp)
{
if(left < right)
{
int mid = (left + right)/2;
MergeSort(num,left,mid,tmp);
MergeSort(num,mid+1,right,tmp);
Merge(num,left,mid,right,tmp);
}
}
void adjustHeap(int* num, int left, int right)
{
int temp = num[left];
for(int i = left*2+1; i<right; i = i*2+1)
{
if(i+1 < right && num[i] < num[i+1])
i++;
if(num[i]> temp)
{
num[left] = num[i];
left = i;
}
else
break;
}
num[left] = temp;
}
void HeapSort(int* num, int len)
{
for(int i = len/2-1; i>=0; i--)
adjustHeap(num,i,len);
for(int i = len-1; i>=0; i--)
{
swap(num[0],num[i]);
adjustHeap(num,0,i);
}
}
int main()
{
int num[] = {1,3,5,7,9,2,4,6,8,10};
for(int i=0; i<10; i++)
cout<<num[i]<<" ";
cout<<endl;
return 0;
}