#include <bits/stdc++.h> using namespace std; int main(){ int a[]={7,4,8,9,2,6}; for(int i=1;i<6;i++){ for(int j=i;j>0;j--){ if(a[j]<a[j-1]){ swap(a[j],a[j-1]); }else{ break; } } } for(int i=0;i<6;i++){ cout<<a[i]<<" "; } }
基本思想:把一个要排序的数组划分为己排序和为排序的两部分
再从未排序部分逐个去除元素
把它和己排序元素进行比较
从右到左比较相邻的两个元素
如果右边的元素比左边的元素小
则交换两个元素,并向左继续比较和交换
否则就停止比较
按此处理为排序部分的所有元素
最终得到一个按升序排列的有序数组
这种算法也叫直接插入排序
标签:int,插入排序,元素,数组,排序,比较 From: https://www.cnblogs.com/fushuxuan/p/18115492