2.1 初级排序算法

Posted rivsidn

tags:

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

2.1demo的C语言实现

/*
 * 实现数组从小到大顺序排列
 */
#include <stdio.h>
#include <stdlib.h>

#define less(a,b) (a<b)
#define exch(array, a, b) do {        int tmp = array[a];                array[a] = array[b];            array[b] = tmp;                } while(0)

/*
 * 选择排序法
 */
void selectSort(int *array, int size)
{
    int i, j;

    for (i = 0; i < size; i++) {
        int min = i;
        for (j = i+1; j < size; j++) {
            if (less(array[j], array[min]))
                min = j;
        }
        exch(array, i, min);
    }
}
/*
 * 插入排序法
 */
void insertSort(int *array, int size)
{
    int i, j;

    for (i = 1; i < size; i++) {
        for (j = i; j>0 && less(array[j], array[j-1]); j--) {
            exch(array, (j-1), j);
        }
    }
}

void show(int *array, int size)
{
    int i;
    for (i = 0; i < size; i++) {
        printf("%d\n", array[i]);
    }

    printf("\n");
    return;
}

int isSorted(int *array, int size)
{
    int i;
    for (i = 1; i < size; i++)
        if (!less(array[i-1], array[i])) 
            return 0;

    return 1;
}


void init_array(int *array, int size)
{
    int i;
    for (i = 0; i < size; i++) {
        array[i] = random();
    }
    
}

#define DEFAULT_SIZE 20

int main()
{
    int *array = malloc(DEFAULT_SIZE*sizeof(int));

    init_array(array, DEFAULT_SIZE);
    show(array, DEFAULT_SIZE);
    selectSort(array, DEFAULT_SIZE);
    show(array, DEFAULT_SIZE);
    insertSort(array, DEFAULT_SIZE);
    show(array, DEFAULT_SIZE);

    return 0;
}

 

以上是关于2.1 初级排序算法的主要内容,如果未能解决你的问题,请参考以下文章

初级排序算法

掌握这几个算法题.NET初级面试算法不发愁

初级排序算法1-定义排序规则

初级排序算法之选择排序

初级排序算法

初级排序算法