直接插入排序 C++实现

直接插入排序:


算法思想:首先认为文件第一个数据是有序的,依次扫描后面的数据,将其插入到前面已经有序的数据区段内,使之有序。
代码实现(C++):

1

void InsertSort(SeqList R, int n)

2

{

3

    

4

    for(int i=1; i<n; i++)   // 默认第一个数据有序,依次遍历从第2个数据之后的数据

5

    {

6

        j=0;

7

        while(j<i)  // 找到R[i]的插入位置

8

        {

9

            if(R[i]<R[j])    // R[i]从j=0开始的R[j]进行比较,小于当前遍历的数据时,

10

                             // 就停止循环,此时j便是R[i]该插入的位置

11

                break;    

12

            j++;      // 如果R[i]大于当前遍历的数据R[j],则j自加,继续遍历后面的数据

13

        }

14

        

15

        while(j<i)   // 插入R[i]到指定位置

16

        {

17

            swap(R[i], R[j++]);     // 将在R[i]插入位置j之后的数据依次往后移 

18

        }

19

    }

20

}
点赞