选择法排序,冒泡排序,递归排序

来源:互联网 发布:360网络测速手机版 编辑:程序博客网 时间:2024/05/02 00:25
#include <stdlib.h>//选择排序void SelectSort(int *p, const int length){    if (p == NULL)    {        return;    }    for (int i = 0; i<length; i++)    {        int k = i;                            //记录一轮找到最小值的下标        for (int j = i+1; j<length; j++)        {            if (p[k] > p[j])            {                k = j;            }        }        int temp = p[k];        p[k] = p[i];        p[i] = temp;    }}//冒泡排序void BubbleSort(int *p, const int length){    if (p == NULL)    {        return;    }    for (int i = 0; i<length; i++)    {        for (int j = i+1; j<length; j++)        {            if (p[i] > p[j])            {                int temp = p[j];                p[j] = p[i];                p[i] = temp;            }        }    }}//递归选择法排序int RecursiveSelectSort(int *p, int length){    if (p == NULL || 1 == length)    {        return 0;    }    int k = 0;    for(int i = 0; i<length; i++)       //找到最小值的下标    {        if (p[k] > p[i])        {            k = i;        }    }    int temp = p[k];    p[k] = p[0];    p[0] = temp;    p++;                                //找到最小值后,数组向前进一步    length--;                           //长度当然减小一步    RecursiveSelectSort(p, length);     //找下一个最小值    return 1;}int main(){    int a[7] = {3, 8, 5, 7, 4, 2, 1};    //SelectSort(a, 7);    //BubbleSort(a, 7);    RecursiveSelectSort(a, 7);    return 1;}