一、插入排序算法基本思想
在未排序的序列中选择一个元素,插入到已经排好序的序列中。
二、插入排序的数据结构
一个数组分成两部分,前头的是排好序的(刚开始是第一个元素认为是排好序的),后边是未排序的。
三、排序过程图解
四、算法源代码
#include<cstdio> int array[] = {-34,3,5,34,5,0,9}; //待排序的数组 int len = 7; //数组的长度 int main() { //将待排序数组升序排序 for(int i=1;i<len;i++) { int key = array[i]; //待插入的元素 int pos = i; //待插入的位置 //在已经排好的序列中找到一个合适的位置 while(key<array[pos-1] && pos>=0) { array[pos] = array[pos-1]; pos--; } array[pos] = key; } //打印出排好序的数组 for(int i=0;i<len;i++) printf("%d ",array[i]); return 0; }