#include<stdio.h>
int main()
{
int a[10]={2,10,23,36,56,64,78,85,97}; /* 定义一个含有9个数据的数组 */
int i,m,n;
printf("请输入一个数据:");
scanf("%d",&n);/* 输入一个新的数据 */
for (i=0;i<9;i++)
{
if (n<a[i]) /* 判断新数据在原数组中的位置 */
{
m=i;
break;
} /* 用m记录下位置,并跳出整个循环 */
}
for(i=8;i>=m;i--)
a[i+1]=a[i]; /* 在m位置之后的数据全部往后挪一位 */
a[m]=n; /* 把新数据放入m位置 */
for(i=0;i<10;i++)
printf("%4d",a[i]); /* 输出新数组 */
return 0;
}
相关文章
- 排序算法-插入排序-初始状态: 将数组分为已排序部分和未排序部分。初始时,已排序部分只包含第一个元素,而未排序部分包含其余的元素。逐步构建有序序列: 从未排序部分取出第一个元素,将其插入到已排序部分的正确位置,使得已排序部分仍然保持有序。比较并移动: 将取出的元素与已排序部分的元素逐一比较,找到其正确的插入位置。为了插入,可能需要将比它大的元素依次向右移动,为新元素腾出插入的位置。重复步骤 2-3: 重复以上步骤,每次取出未排序部分的一个元素,插入到已排序部分的正确位置。这样,已排序部分逐渐增加,未排序部分逐渐减小。直到排序完成: 重复上述过程,直到未排序部分为空,整个数组就被排序完成了。 插入排序代码
- 算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置,无重复字符的最长子串
- 算法刷题-分隔链表、合并两个有序链表、在排序数组中查找元素的第一个和最后一个位置
- C++实现LeetCode(34.在有序数组中查找元素的第一个和最后一个位置)
- 查找一个有序数组中的一个元素——二分法
- 向有序数组中插入一个元素,使数组仍有序。
- 有n个有序的整数放在一维数组中,输入一个数,将该数放入数组合适的位置,使插入该数后,数组中的元素仍然有序;
- 查找一个有序数组中的一个元素——二分法
- java实现向有序数组中插入一个元素实例
- 使用二分查找向一个有序数组中插入一个数据