嵌入式学习-数据结构-Day6
一、思维导图![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f743b74492574648bf4a9ec1745f6a80.png#pic_center)
二、作业
1.插入排序:把无序序列分成有序区和无序区,依次拿无序区的每一个元素依次插入有序区中,经过大小比较实现后移,插入到合适的位置,直至序列有序。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int arr[]={2,9,5,4,8,1,6};
int len=sizeof(arr)/sizeof(arr[0]);
int j;
for(int i=1;i<len;i++)//循环轮数
//i是下标,从无序区第一个到最后
{
int t=arr[i]; //保存无序区的第一个元素
for(j=i-1;j>=0;j--)//倒序循环有序区的下标
{
if(t<arr[j])//如果无序区第一个元素小于有序区元素
{
arr[j+1]=arr[j]; //有序区元素后移,覆盖原先无序区的元素
}
else
break; //无序区第一个元素大于有序区当前元素,退出
}
arr[j+1]=t; //赋值
}
for(int i=0;i<len;i++)
printf("%d ",arr[i]);
puts("");
return 0;
}
运行结果