c++实现插入排序算法


#include <iostream>
using namespace std;

//插入排序法
void insertSortMethod(int intArr[],int arrLen);
void printArrInfo(int intArr[],int arrLen);
int main()
{
    int arr[] = { 1,3,5,2,4,7,9,6,8 };
    int len = sizeof(arr) / sizeof(int);
    insertSortMethod(arr,len);
    printArrInfo(arr,len);
    system("pause");
    return 0;
}
//插入排序法
void insertSortMethod(int intArr[],int arrLen)
{
    int start = 0;
    for (int i = 0; i < arrLen-1; i++)
    {
        for (int j = i + 1; j > start; j--)
        {
            if (intArr[j - 1] > intArr[j])
            {
                int temp;
                temp = intArr[j - 1];
                intArr[j - 1] = intArr[j];
                intArr[j] = temp;
            }
        }
    }
}
void printArrInfo(int intArr[],int arrLen)
{
    for (int i = 0; i < arrLen; i++)
    {
        cout << intArr[i] << " ";
    }
    cout << endl;
}

注意 实现方法的时候,很自然的想到在方法体中实现得到数组长度,即int len = sizeof(intArr)/sizeof(int),实际上在调用函数的时候,传递的是数组的首地址,这和我们在main方法中定义赋值一个数组用此方法得到数组长度是不一样的。所以在实现方法的时候,将数组长度作为一个函数参数传入进去

 
posted @ 2020-02-10 09:43  littlelittleprince  阅读(619)  评论(0编辑  收藏  举报