博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言四种常用排序
阅读量:4285 次
发布时间:2019-05-27

本文共 1157 字,大约阅读时间需要 3 分钟。

//冒泡排序 稳定

void sort1(int a[],unsignedint n){

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

        for (int j = i +1; j < n  ;j++) {

            if(a[i]>a[j]){

                a[i] = a[j] + a[i];

                a[j] = a[i] - a[j];

                a[i] = a[i] - a[j];

            }

        }

    }

}

//选择排序 不稳定

void sort2(int a[],unsignedint n){

    int temp = 0;

    int index = 0;

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

        temp = a[i];

        index = i;

        for (int j = i +1; j < n;j++) {

            if( a[j] < temp){

                temp = a[j];

                index = j;

            }

        }

        if(i==index){

            continue;

        }else{

            a[i] = a[index] + a[i];

            a[index] = a[i] - a[index];

            a[i] = a[i] - a[index];

        }

    }

}

//插入排序 稳定

void sort3(int a[],unsignedint n){

    int temp=0;

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

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

            if(a[i] < a[j]){

                temp = a[i];

                for(int k = i; k > j;k--){

                    a[k] = a[k-1];

                }

                a[j] = temp;

            }

        }

    }

}

 

void sortRecursive(int a[],int first,int last){

    int temp=0;

    int index=first;

    for(int i=first;i<=last;i++){

        if(a[i]<a[index]){

            temp = a[i];

            for(int k = i; k > index;k--){

                a[k] = a[k-1];

            }

            a[index] = temp;

            index++;

        }

    }

    if(last==first||last-first==1||first>last){

        return;

    }

    sortRecursive(a, first, index - 1);

    sortRecursive(a, index + 1, last);

}

//快速排序 不稳定

void sort4(int a[],unsignedint n){

    int i=0;

    int j=n-1;

    sortRecursive(a, i, j);

}

转载地址:http://lypgi.baihongyu.com/

你可能感兴趣的文章
使用js连接mqtt
查看>>
ubuntu下mysql数据库docker的定时备份脚本
查看>>
python3基于 Doc2Vec 的电影评论分析实战
查看>>
Centos 7 下influxdb docker的安装及使用
查看>>
python中lambda表达式使用实战
查看>>
centos 7中firewalld防火墙命令的使用
查看>>
python实现协程的三种方式
查看>>
WARNING: IPV4 forwarding is disabled. Networking will not work. 运行centos docker的时候报错
查看>>
在centos docker中封装flask应用,并使用命令和dockerfile两种方式制作镜像实战
查看>>
GARCH(二)
查看>>
Android中自带的list布局
查看>>
Adapter之大数据滑动效率优化和分页加载数据
查看>>
SQL读取大量数据的字符
查看>>
Android界面View及ViewGroup
查看>>
使用java实现高中数学中自由组合
查看>>
Java中密码加密之PBE算法
查看>>
0基础配置Android Studio
查看>>
Exception in thread "http-bio-8080-exec-7"内存溢出问题
查看>>
关于组织机构算法A001、A0010001、A0010002
查看>>
JdGrid树形表格分页
查看>>