插入排序,对于少量元素的排序,它是一个有效的算法。其算法时间复杂度为O(n2),需要一个额外空间。
插入排序伪码过程命名为INSERTION-SORT,其中参数为
A[1..n],伪码为:
INSERTION-SORT(A) for j=2:A.length key=A[j] i=j-1 whilei>0 && A[i]>key A[i+1]=A[i] i=i-1 A[i+1]=key</span>
C++源码为:
#include<iostream> using namespace std; //插入排序练习 int main() { //定义一个无序数组 int A[]={5,2,4,6,1,3}; //定义变量i,j,key int i=0; int j=0; int key=0; //定义排序数组的长度 int length=sizeof(A)/sizeof(int); //cout<<"length:"<<length<<endl; //从第二个数开始进行排序 for(j=1;j<length;j++) { //保存要排序的数 key=A[j]; //定义循环变量i i=j-1; //从A[j-1]开始与key(A[j])比较,找到A[j]要插入的位置i //i>-1主要是对第一个和第二个数进行排序 while(i>-1 && A[i]>key) { //比key大的数依次后移 A[i+1]=A[i]; //定义下一个要比较数的索引 i=i-1; } //将key(A[j])插入到i+1位置上 //由于while循环退出时,A[i]是小于key的,所以key应插入到i+1的位置上 A[i+1]=key; } for(int k=0;k<length;k++) { cout<<A[k]<<endl; } system("pause"); return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-09 00:25:37