首页 > 其他分享 >简单的排序方法汇总

简单的排序方法汇总

时间:2023-07-12 20:22:38浏览次数:32  
标签:Funs int void 汇总 简单 quick 排序 size


#include<stdio.h>

//定义交换数值函数
void Swap(int* a,int* b);
//定义输出数组函数
void Print_arr(int a[],int size);
//简单插入排序
void Funs_Charu(int a[],int size);
//简单冒泡排序
void Funs_Maopao(int a[],int size);
//简单选择排序
void Funs_Xuanze(int a[],int size);
//快速排序启动函数
void quick(int a[],int low,int high);
//快速排序中心部分,返回中心值下标
int mid(int a[],int low,int high);
//快速排序主体部分,递归部分
void Funs_quick_start(int a[],int size);

//定义要排序的数组
int a[]={1,3,5,7,9,2,4,6,10};

//定义交换数值函数
void Swap(int* a,int* b)
{
    int temp=*a;
    *a=*b;
    *b=temp;
}

//定义输出数组函数
void Print_arr(int a[],int size)
{
    for(int i=0;i<size;i++)
    {
        printf("%d ",a[i]);
    }
}

//简单插入排序
void Funs_Charu(int a[],int size)
{
    for(int i=1;i<size;i++)
    {
        int temp=a[i];
        int cnt=i-1;
        for(int j=i+1;j<size;j++)
        {
            while (cnt>=0 && temp<a[cnt])
            {
                a[cnt+1]=a[cnt];
                cnt--;
            }
            a[cnt+1]=temp;

         }
    }
}

//简单冒泡排序
void Funs_Maopao(int a[],int size)
{   int temp;
    for(int i=0;i<size;i++)
    {
        for(int j=0;j<size-1-i;j++)
        {
            if(a[j]>a[j+1])
            {
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
}

//简单选择排序
void Funs_Xuanze(int a[],int size)
{
    int min;
    for(int i=0;i<size;i++)
    {
        min=i;
        for(int j=i+1;j<size;j++)
        {
            if(a[min]>a[j])
            {
                min=j;
            }
        }
        Swap(&a[min],&a[i]);
    }
}

//快速排序

//快速排序启动函数
void Funs_quick_start(int a[],int size)
{
    quick(a,0,size-1);
}
//快速排序主体部分,递归部分
void quick(int a[],int low,int high)
{
    if(low<high)
    {    
    int c=mid(a,low,high);
    quick(a,low,c-1);
    quick(a,c+1,high);
    }
}
//快速排序中心部分,返回中心值下标
int mid(int a[],int low,int high)
{
    int cnt=a[high];
    int i=low;
    int j;
    for(j=low;j<high;j++)
    {
        if(cnt>a[j])
        {
            Swap(&a[j],&a[i++]);
        }
    }
    Swap(&a[high],&a[i]);
    return i;
}


int main()
{
    int size=sizeof(a)/sizeof(int);//求出数组元素的个数
    //Funs_Charu(a,size);
    //Funs_Maopao(a,size);
    //Funs_Xuanze(a,size);
    //Funs_quick_start(a,size);
     Print_arr(a,size);
    return 0;
}

标签:Funs,int,void,汇总,简单,quick,排序,size
From: https://www.cnblogs.com/lzzcforever/p/17548736.html

相关文章

  • newcoder61132F <结论:排序最小交换次数>
    题目松鼠排序n个不同的数,任意交换位置进行排序,其最小交换次数。思路结论:\(最小交换次数=n-r\),其中\(r\)为置换环个数。参考:https://www.cnblogs.com/CDOI-24374/p/16410082.html代码Code#include<iostream>#include<algorithm>#include<vector>#include<cstrin......
  • ansible简单使用之inventory文件(主机清单)
    ansible简单使用之inventory文件(主机清单)ansibleinventory文件是干什么的一般称ansibleinventory文件为ansible主机清单ansibleinventory文件定义了ansible需要操作的远程机器的信息,默认路径是/etc/ansible/hosts,也可以在命令行使用-i<path>指定路径。inventory......
  • ansible shell模块简单使用
    ansibleshell模块简单使用参数参数说明chdir运行命令前先CD到该目录cmd运行的命令creates存在某个文件就不运行命令executable更改执行命令的shell路径,需要是绝对路径free_formTheshellmoduletakesafreeformcommandtorun,asastring.The......
  • ansible find模块简单使用
    ansiblefind模块简单使用参数参数说明paths要查找的目录列表别名:name、path类型:listrecurse是否递归遍历子目录选项:true或false,默认falsehidden是否包含隐藏文件选项:true或false,默认falsefile_type要查找的文件类型默认只查找的是文件选项:any(所......
  • Stream - Collectors.groupingBy实现分组后,且每个分组也进行排序
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Stream-实现分组后,且每个分组也进行排序前言一、groupingBy高级用法二、先分组,再排序总结 前言之前记录过:stream的三个常用方式(toMap,groupingBy,findFirst)。这里继续记录下groupingBy的几个高......
  • vue2 + elementUI + sortablejs 实现可行拖拽排序表格
    需要实现表格(可以新增行,表格中直接编辑数据,行可上下拖动重新排序)实现效果(整行上下拖动之后,序号变化为1,2,3.......,可根据名称看效果哦):初始表格: 拖拽后:1.安装拖拽插件npminstallsortablejs--save页面中引入importSortablefrom'sortablejs'2.页面el-table......
  • P2824 排序(二分答案)
    题目简述给出一个$1$到$n$的排列,现在对这个排列序列进行$m$次局部排序,排序分为两种:0lr表示将区间$[l,r]$的数字升序排序1lr表示将区间$[l,r]$的数字降序排序这里是对下标在区间$[l,r]$内的数排序。最后询问第$q$位置上的数字。分析&性质申必题,对......
  • git相关的简单命令
    初次使用建议看这个ppt:http://www.bootcss.com/p/git-guide/  从现有仓库克隆这需要用到gitclone命令。如果你熟悉其他的VCS比如Subversion,你可能已经注意到这里使用的是clone而不是checkout。这是个非常重要的差别,Git收取的是项目历史的所有数据(每一个文件的每一个版......
  • 简单记录个启动脚本
    #!/bin/bash#/etc/profileDataPath="/cloud/sync/syncData"echo"[info][$(date+'%F%H:%M:%S')]正在监控syncData,路径:$DataPath"pid=`ps-ef|grepsyncData|grep-w$DataPath|grep-v'grep'|awk'{print$2}'......
  • 轨迹,简单轨迹
        [{"x":0,"y":0,"type":"down","t":2687},{"x":5,"y":0,"type":"move","t":2756},{"x":11,"y":-1,"type":"move",&qu......