• 排序算法


    #include <stdio.h>

    #define N 4

    //冒泡排序

    int* bubbleSort(int *num,int NN)   //前面参数是指向整形数组的指针,后面的N是这个数组的大小

    {

        for (int i=0; i<NN-1; i++) { //排序N-1次

            for (int j=0; j<NN-1-i; j++) {  //每次都从第一个一次往后面的比,大的排在后面,但后面已经排序好了的就不需要比了

                if (num[j]>num[j+1]) {

                    num[j]=num[j]^num[j+1];   //yi'huo

                    num[j+1]=num[j]^num[j+1];

                    num[j]=num[j]^num[j+1];

                }

            }

        }

        int *p=num; //返回数组

        return p;

    }

    //快速排序

    void* quickSort(int *num,int NN)

    {

        

    }

    //显示调用排序方法后的数组

    void* show(int num[],int NN,int(*p)(int num[],int NN))  //指向数组的指针,和指向函数的指针

    {

        return p(num, NN);

    }

    int main(int argc, const char * argv[])

    {

    //    printf("您想要排序几个数:");

    //    scanf("%d",&N);

        printf("输入您要排序的%d个数(例如:1 3 2 4) ",N);

        int num[N];

        for (int i=0; i<N; i++) {

            scanf("%d",&num[i]);

        }

        printf("您输入的数组是:");

        for (int i=0; i<N; i++) {

            printf("%d ",num[i]);

        }

        printf(" ");

        

        //冒泡排序

        /*

        for (int i=0; i<N-1; i++) { //排序N-1次

            for (int j=0; j<N-1-i; j++) {  //每次都从第一个一次往后面的比,大的排在后面,但后面已经排序好了的就不需要比了

                if (num[j]>num[j+1]) {

                    num[j]=num[j]^num[j+1];

                    num[j+1]=num[j]^num[j+1];

                    num[j]=num[j]^num[j+1];

                }

            }

        }

        */

        show(num,N, bubbleSort);  //使用委托,调用外部函数,但数组是地址传递,不是值传递,所以在外面函数将main函数中的数组作为参数传递的时候,改变参数中的数组中的值,实际上就改变了数组中的值

        printf("冒泡排序后的数组是:");

        for (int i=0; i<N; i++)

        {

            printf("%d ",num[i]);

        }

        //快速排序 

    }

    感谢来访,共同学习!
  • 相关阅读:
    centos7上修改lv逻辑卷的大小
    centos6上调整lv逻辑卷
    nginx的日志配置
    修改Linux系统默认编辑器
    mysqldump命令的安装
    centos7上设置中文字符集
    nginx的80端口跳转到443
    ubuntu上安装docker和docker-compose
    javascript递归、循环、迭代、遍历和枚举概念
    Lattice 开发工具Diamond 相关版本下载地址
  • 原文地址:https://www.cnblogs.com/dingxiaowei/p/3182655.html
Copyright © 2020-2023  润新知