直接插入排序

直接插入排序

实现过程

假设最开始的有序序列中只有数组内的第一个元素,将数组剩下的其他元素依次按序插入到之前排好的有序序列中.

代码实现

int main() {
  //定义一个容量为10的数组
  int array[] = {12, 23, 43, 33, 44, 55, 32, 45, 54, 22};

  //假设最开始的有序序列中只有数组中的第一个元素
  //从第二个元素开始依次插入到之前的有序序列中
  for (int i = 1; i < 10; i++) {

    //假如第i个待插入的元素的值比第i-1个元素的值小
    if (array[i] < array[i - 1]) {
      //将第i个元素暂时存储
      int temporary = array[i];
      int j = 0;
      //确定第i个元素的插入位置
      for (j = i; j > 0 && temporary < array[j - 1]; j--) 
        //将比第i个元素大的元素后移
        array[j] = array[j - 1];
      //将第i个元素放到之前找到的插入位置中
      array[j] = temporary;
    }
  }

  //将排好序的数组进行输出
  for (int i = 0; i < 10; i++) {
    cout << array[i] << " ";
  }
  cout << endl;
  return 0;
}

程序输出:12 22 23 32 33 43 44 45 54 55

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值