1-冒泡排序C实现(递增递减的简单转换)
一、
函数:void Bub_Sort(int* head,int low,int high,int Bool)
参数解释
head:数组指针
[low, high]:需排序的数组范围
Bool:等于1表示从小到大排序,不等于1从大到小排序
说明
扫描数组中low到high-(i-low)范围
通过交换,使得head[j]始终为数组low到j范围的最大值
此方法每遇到更大的值需要交换一次
最多的交换次数为第一层循环次数*第二层循环次数(第二层循环每一次循环都需要交换)
#include <stdio.h>
#include <time.h>void Bub_Sort(int* head,int low,int high,int Bool){//多次交换int temp;//交换int temp1;//优化for(int i=low;i<high;i++){temp1=high-(i-low);for(int j=low+1;j<=temp1;j++){//使得head[j]始终为最值//Bool等于1为递增序列,Bool不等于1为递减序列if((head[j]<head[j-1])==Bool){temp=head[j];head[j]=head[j-1];head[j-1]=temp;}}}
}int main(int argc, char **argv) {printf("Hello, World!\n");int s[5];s[0]=2;s[1]=5;s[2]=1;s[3]=4;s[4]=3;int i=0;while(i<5)printf("%d ",s[i++]);printf("\n---------\n");Bub_Sort(s,0,4,1);int j=0;while(j<5)printf("%d ",s[j++]);return 0;
}
二、
参数解释
head:数组指针
[low, high]:需排序的数组范围
说明
该函数也可通过添加Bool参数实现顺逆排序的转换
扫描数组中low到high-(i-low)范围
使得Value指向数组该范围中的最大值
最后Value处与high-(i-low)处的值相交换
此方法第二层每循环一次需要交换一次
最多交换的次数为第一层循环的循环次数
void Bub_Sort1(int* head,int low,int high){//类冒泡,单次交换int Value;//记录当前最值位置int temp;//交换int temp1;//优化for(int i=low;i<high;i++){Value=low;//设定当前最值位置temp1=high-(i-low);for(int j=low+1;j<=temp1;j++){if(head[j]>head[Value]) Value=j;}//将Value位置的值放到末尾:head[high-(i-low)]temp=head[high-(i-low)];head[high-(i-low)]=head[Value];head[Value]=temp;}
}
1-冒泡排序C实现(递增递减的简单转换)相关推荐
- 5-简单选择排序C实现(递增递减的简单转换)
一. 函数:void Sec_Sort(int* head,int low,int high,int Step_L,int Bool) 参数解释 head:数组指针 [low, high]:需排序的数 ...
- 7-二路归并排序C实现(递增递减的简单转换)
一. 主函数:void Mer_Sort(int* head,int low,int high,int Step_L,int Bool) 二路归并 参数解释 head:数组指针 [low, high] ...
- 6-堆排序C实现(递增递减的简单转换,可优化(41行提示))
一. 主函数:void Hea_Sort(int* head,int low,int high,int Step_L,int Bool) 参数解释 head:数组指针 [low, high]:需排序的 ...
- 4-希尔排序C实现(递增递减的简单转换)
一. 函数:void She_Sort(int* head,int low,int high,int* Step_S,int Step_Sl,int Bool) 参数解释 head:数组指针 [low ...
- 3-插入排序C实现(递增递减的简单转换)
一. 参数解释 head:数组指针 [low, high]:需排序的数组范围 Bool:等于1表示从小到大排序,不等于1从大到小排序 说明 反向扫描数组中i到low范围 遇到更大的值则交换,遇到更小的 ...
- 2-快速排序C递归实现(递增递减的简单转换)
一. 函数:void Quick_Sort(int *nums,int low,int high,int Bool) 参数解释 nums:数组指针 [low, high]:需排序的数组范围 Bool: ...
- C++ Primer笔记12_运算符重载_递增递减运算符_成员訪问运算符
1.递增递减运算符 C++语言并不要求递增递减运算符必须是类的成员.可是由于他们改变的正好是所操作对象的状态.所以建议设定为成员函数. 对于递增与递减运算符来说,有前置与后置两个版本号,因此.我们应该 ...
- javascript中基本包装、算数运算符、递增递减运算符、赋值运算符、比较运算符、逻辑运算符、运算符优先级
基本包装类型: 指基本类型的数据变量通过调用属性或者方法包装成了复杂类型,这个变量也称为基本包装类型对象 <script>var str = 'hello';str = str.repla ...
- PHP 递增/递减运算符
2019独角兽企业重金招聘Python工程师标准>>> 运算符 名称 描述 ++$x 前递增 $x 加一递增,然后返回 $x $x++ 后递增 返回 $x,然后 $x 加一递增 -- ...
最新文章
- python 基础 7.6 sys 模块
- 应力循环次数60ant_中国航发:金属粉末循环使用导致的成分及打印件性能变化...
- python 调用linux命令-python3调用linux命令——Subprocess
- php-cgi导致的502 Bad Gateway错误
- 从无到有算法养成篇-利⽤栈思想解决问题
- list contains方法_Java中给List去重的5种方法,谁的效率更高?
- PX4 的 ECL EKF 公式推导及代码解析
- 【转贴】学习Linux的几点忠告
- 自旋锁spin_lock
- php数据多层关联,php – 我们如何进行laravel多级关联
- 部署http+svn,yum安装svn 1.9版本
- Matlab中的对数使用
- Luogu 3934 Nephren Ruq Insania
- 迅捷pdf转换器——如何提取pdf中的图片
- springboot2.0启动报错The APR based Apache Tomcat Native library which allows optimal performance in ...
- 制作自定义图标(icon)
- 基于Python实现Aitken迭代法和牛顿迭代法
- kafka 0.10.0.0 版本
- Crossplane 和 Terraform 的区别
- 卷积神经网络分类实战
热门文章
- android 视频监控相关(打包下载)
- 兴趣记忆法(1)顺口溜记忆
- C# 基础知识 (四).C#简介及托管代码
- 【数据结构与算法】之深入解析“三数之和”的求解思路与算法示例
- iOS之深入解析操作系统的架构
- LeetCode 多线程 1117. H2O 生成
- 529. Minesweeper
- 【机器视觉】 dev_close_window算子
- 【Linux网络编程】套接字简介
- linux xps 13 wifi,XPS13-9350安装linux以及网卡连接失败修复的临时方案