直接插入排序

来源:互联网 发布:qq飞车迈凯轮数据 编辑:程序博客网 时间:2024/05/02 01:17
 
#include <iostream>
//直接插入排序
void insertSort(int arr[], int n);
void insertNum(int arr[], int i);

void main(void)
{
    
int arr[10= {9,5,39,6,7,2,34,4,3,1};
    insertSort(arr, 
10);
    
for (int i = 0; i< 10; i++)
    
{
        std::cout
<<arr[i]<<std::endl;
    }

}


void insertSort(int arr[], int n)
{
    
//把第i个数字插入前0~i-1个数字,
    
//并且0~i-1个数字是已经排好序的
    for (int i = 1; i<n; i++)
        insertNum(arr, i);
}


void insertNum(int arr[], int i)
{
    
int temp = arr[i];
    
while(i > 0 && temp < arr[i-1])
    
//如果发现要插入的数字比前一个数字小,则把前面的数字网后移
    {
        arr[i] 
= arr[i-1];
        i
--;
    }

    
//最后把数字插入合适的位子
    arr[i]=temp;
}

原创粉丝点击