排序--插入排序
首先推荐这篇文章https://blog.csdn.net/qq_19782019/article/details/78021705,很明白的写出了两种排序算法的差距,更对两种不同插入排序的性能进行了分析。插入排序的思想是,一共N个数据,需要进行N-1趟排序组成。对从1到N-1趟,插入排序保证从位置0到位置P上的元素为已排序的状态。起初我们设置1为起始位置,也就是第一趟保证0-1的元素是已排序的,第二趟保证0-2的元素,每一趟将该趟位置的元素与该元素前面的每一个元素进行对比,寻找插入的位置。插入排序有可能提前结束。
//排序都按照从小到大的顺序排
//输入数组和数组大小
//插入排序的思想
//一般写法
void InsertSort(ElementType A[],int N)
{
int i,j;
ElementType temp;
for(i=1;i<N;i++)
{
//temp=A[i]
for(j=i;j>0&&A[i]<A[i-1];j--)
{
Swap(A[i],A[i-1]);//交换
//A[i]=A[i-1];
}
}
}
//高级写法
void InsertSort(ElementType A[],int N)
{
int i,j;
ElementType temp;
for(i=1;i<N;i++)
{
temp=A[i];
for(j=i;j>0&&A[i-1]>temp;j--)
{
A[j]=A[j-1];
}
A[j]=temp;
}
}

浙公网安备 33010602011771号