插入排序和选择排序

Posted echo1937

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序和选择排序相关的知识,希望对你有一定的参考价值。

插入排序:

 1 #include <stdio.h>
 2 #define LEN 5
 3 
 4 int a[LEN] = {10, 5, 2, 4, 7};
 5 
 6 void print(void)
 7 {
 8     for (int i = 0; i < LEN; i++)
 9         printf(" %d", a[i]);
10     printf("
");
11 }
12 
13 void insertion_sort(void) //该算法要求背诵
14 {
15     int j, key;
16     for (int i = 1; i < LEN; i++)
17     {
18         print();
19 
20         key = a[i];
21         for (j = i - 1; j >= 0 && a[j] > key; j--)
22             a[j + 1] = a[j];
23 
24         a[j + 1] = key;
25     }
26     print();
27 }
28 
29 int main(void)
30 {
31     insertion_sort();
32     return 0;
33 }

选择排序:

#include <stdio.h>
#define LEN 5

int a[LEN] = {10, 5, 2, 4, 7};

void print(void)
{
    for (int i = 0; i < LEN; i++)
        printf(" %d", a[i]);
    printf("
");
}

void selection_sort(void) //该算法要求背诵
{
    int min, low;
    for (int i = 0; i < LEN - 1; i++)
    {
        print();
        min = a[i];
        low = i;
        for (int j = i + 1; j < LEN; j++)
        {
            if (a[j] < min)
            {
                min = a[j];
                low = j;
            }
        }
        a[low] = a[i];
        a[i] = min;
    }
    print();
}

int main(void)
{
    selection_sort();
    return 0;
}

 

以上是关于插入排序和选择排序的主要内容,如果未能解决你的问题,请参考以下文章

直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚

选择排序和插入排序

《算法》笔记 3 - 选择排序插入排序希尔排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序

python实现时间复杂度平均为N^2的冒泡选择插入排序