插入排序

/* 名称:插入排序 描述:将长度为length的数组,进行排序. flag=0 从小到大排序 flag=非0 从大到小排序 时间:15.7.11 Jason Zhou 热爱你所写下的程序,他是你的伙伴,而不是工具. */

#include<iostream>
using namespace  std;

int insertion_sort(int arr[],int length,int flag)
{
    int key;
    for (int j=1;j<length;j++)
    {
        key=arr[j];
        int i=j-1;
        if(!flag)
        {
            for (i=j-1;i>-1;i--)
            {
                if( arr[i]>key )
                {
                    arr[i+1]=arr[i];
                }
                else
                {
                    //因为前面应是排序好的数组,没必要继续比较
                    break;
                }
            }

        }
        else
        {
            for (i=j-1;i>-1;i--)
            {
                if( arr[i]<key )
                {
                    arr[i+1]=arr[i];
                }
                else
                {
                    break;
                }
            }

        }
        arr[i+1]=key;

    }


    return 0;
}

int main()
{

    int a[]={1,33,1324,4,56,3,4,9,2,7};
    insertion_sort(a,10,-1);
    for (int i=0;i<10;i++)
    {
        cout<<a[i]<<endl;
    }

    return 0;
}

你可能感兴趣的:(插入排序)