插入排序笔记

思路:

假设数组a有n个元素,而且已按升序排列,在插入一个数时按下面的方法处理:

1.如果插入的数num比a数组最后一个数大,则将插入的数放在a数组末尾。

2.如果插入的数num不比a数组最后一个数大,则将它依次和a[0]~a[n-1]比较,直到出现a[i]>num为止,这时表示a[0]~a[i-1]各元素的值比num小,a[i]~a[n-1]各元素的值比num大。num理应插到a[i-1]之后,a[i]之前。则将a[i]到a[n-1]各元素向后移动一个位置。然后将num放在a[i]中。

代码:

#include

int main() {

int a[11] = {1,4,6,9,13,16,19,28,40,100};

    for(int i =0;i<10;i++){

printf("%d ",a[i]);

    }

printf("\n");

    printf("请输入一个数字\n");

    int num =0;

    scanf("%d",&num);

    if(num>a[9]){

a[10] = num;

    }else{

int i;

        for(i =9;i>=0;i--){

if(num

a[i+1] = a[i];

            }else{

a[i+1] = num;

break;

            }

}

if(i<0){

a[i+1] = num;

        }

}

for(int i =0;i<11;i++){

printf("%d ",a[i]);

    }

return 0;

}

运行结果:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容