算法——插入排序
#include <iostream>
#include <cstdio>
using namespace std;
//插入排序
/*原理:像打扑克时整理手牌所做的事一样
在原来数组的基础上,以第一张手牌(认为已经排好序)为初始,依次插入后面的元素
*/
int a[9]={0,1,54,77,24,97,32,8,21}; //说明:0号元素不计入待排序的元素内(对1到8号排序)
void fun()
{
int j,now; //设置在循环外
for(int i=2;i<=8;i++)//从第二位开始(第一位只有一个,是有序的)
{
now=a[i]; //用now记录下来此时的a[i],因为在整体后移中a[i]会丢失
for(j=i-1;j>=1;j--)
{
if(a[j]>now) //比待插入元素大的全部后移一位,这里还得用now
a[j+1]=a[j]; //右移(从后往前遍历)
else break; //此时找到位置
}
a[j+1]=now;
}
}
int main()
{
fun();
for(int i=1;i<=8;i++)
cout<<a[i]<<" ";
return 0;
}
这篇文章,是又一个故事的结束...
lazy's story is continuing.