插入排序

来源:互联网 发布:淘宝上买避孕套干净吗 编辑:程序博客网 时间:2024/05/17 02:00
/* * 插入排序的基本思想是: * 每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。 * 插入排序是稳定的排序方法,时间复杂度为O(n^2)。*/#include <iostream>using namespace std;void InsertSort(int array[],int n){    int i,j,temp;    for(i=1;i<n;i++)//第一个元素默认有序    {        temp=array[i];        for(j=i-1;j>0&&temp<array[j];j--)        {                array[j+1]=array[j];        }        array[j+1]=temp;//找到插入位置    }}/*array[0]作为哨兵,不存储元素好处是不用判断j是否大于0*/void InsertSort1(int array[],int n){    int j;    for(int i=2;i<n;i++)    {        array[0]=array[i];        for(j=i-1;array[0]<array[j];j--)//寻找插入位置        {            array[j+1]=array[j];        }        array[j+1]=array[0];    }}int main(){    int array[10]={10,3,4,1,5,6,7,8,9,0};    InsertSort(array,10);    for(int i=0;i<10;i++)        printf("%d ",array[i]);    return 0;}

1 0
原创粉丝点击