码迷,mamicode.com
首页 > 编程语言 > 详细

2.1 初级排序算法

时间:2019-04-27 14:45:48      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:printf   select   pre   nbsp   array   lib   and   tmp   dem   

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 初级排序算法

标签:printf   select   pre   nbsp   array   lib   and   tmp   dem   

原文地址:https://www.cnblogs.com/rivsidn/p/10778664.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!