插入排序:对于少量元素的排序,是一个比较有效的算法。
#include "stdafx.h"
#include<iostream>
using namespace std;
void Insertion_Sort(int *,int );//插入升序排序
void Insertion_SortDown(int *,int );//插入降序排序
void ViewData(int *,int len);//读数据
int _tmain(int argc, _TCHAR* argv[])
{
int arr[]={5,2,12,34,2,4,6,1,3};
size_t len=sizeof(arr)/sizeof(arr[0]);
Insertion_SortDown(arr,len);
ViewData(arr,len);
return 0;
}
//插入排序INSERTION_SORT升序
void Insertion_Sort(int *arr,int len)
{
for (int index = 1;index!=len;++index)
{
int key = arr[index];
int i = index-1;
while(i>=0 && arr[i]>key)
{
arr[i+1]=arr[i];
--i;
}
arr[i+1]=key;
}
}
//插入排序INSERTION_SORT降序
void Insertion_SortDown(int *arr,int len)
{
for (int index = 1;index!=len;++index)
{
int key = arr[index];
int i = index-1;
while(i>=0 && arr[i]<key)
{
arr[i+1]=arr[i];
--i;
}
arr[i+1]=key;
}
}
void ViewData(int *arr,int len)
{
for(int i =0;i!=len;i++)
{
cout<<arr[i]<<endl;
}
}