一、
函数: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实现(递增递减的简单转换)相关推荐

  1. 5-简单选择排序C实现(递增递减的简单转换)

    一. 函数:void Sec_Sort(int* head,int low,int high,int Step_L,int Bool) 参数解释 head:数组指针 [low, high]:需排序的数 ...

  2. 7-二路归并排序C实现(递增递减的简单转换)

    一. 主函数:void Mer_Sort(int* head,int low,int high,int Step_L,int Bool) 二路归并 参数解释 head:数组指针 [low, high] ...

  3. 6-堆排序C实现(递增递减的简单转换,可优化(41行提示))

    一. 主函数:void Hea_Sort(int* head,int low,int high,int Step_L,int Bool) 参数解释 head:数组指针 [low, high]:需排序的 ...

  4. 4-希尔排序C实现(递增递减的简单转换)

    一. 函数:void She_Sort(int* head,int low,int high,int* Step_S,int Step_Sl,int Bool) 参数解释 head:数组指针 [low ...

  5. 3-插入排序C实现(递增递减的简单转换)

    一. 参数解释 head:数组指针 [low, high]:需排序的数组范围 Bool:等于1表示从小到大排序,不等于1从大到小排序 说明 反向扫描数组中i到low范围 遇到更大的值则交换,遇到更小的 ...

  6. 2-快速排序C递归实现(递增递减的简单转换)

    一. 函数:void Quick_Sort(int *nums,int low,int high,int Bool) 参数解释 nums:数组指针 [low, high]:需排序的数组范围 Bool: ...

  7. C++ Primer笔记12_运算符重载_递增递减运算符_成员訪问运算符

    1.递增递减运算符 C++语言并不要求递增递减运算符必须是类的成员.可是由于他们改变的正好是所操作对象的状态.所以建议设定为成员函数. 对于递增与递减运算符来说,有前置与后置两个版本号,因此.我们应该 ...

  8. javascript中基本包装、算数运算符、递增递减运算符、赋值运算符、比较运算符、逻辑运算符、运算符优先级

    基本包装类型: 指基本类型的数据变量通过调用属性或者方法包装成了复杂类型,这个变量也称为基本包装类型对象 <script>var str = 'hello';str = str.repla ...

  9. PHP 递增/递减运算符

    2019独角兽企业重金招聘Python工程师标准>>> 运算符 名称 描述 ++$x 前递增 $x 加一递增,然后返回 $x $x++ 后递增 返回 $x,然后 $x 加一递增 -- ...

最新文章

  1. python 基础 7.6 sys 模块
  2. 应力循环次数60ant_中国航发:金属粉末循环使用导致的成分及打印件性能变化...
  3. python 调用linux命令-python3调用linux命令——Subprocess
  4. php-cgi导致的502 Bad Gateway错误
  5. 从无到有算法养成篇-利⽤栈思想解决问题
  6. list contains方法_Java中给List去重的5种方法,谁的效率更高?
  7. PX4 的 ECL EKF 公式推导及代码解析
  8. 【转贴】学习Linux的几点忠告
  9. 自旋锁spin_lock
  10. php数据多层关联,php – 我们如何进行laravel多级关联
  11. 部署http+svn,yum安装svn 1.9版本
  12. Matlab中的对数使用
  13. Luogu 3934 Nephren Ruq Insania
  14. 迅捷pdf转换器——如何提取pdf中的图片
  15. springboot2.0启动报错The APR based Apache Tomcat Native library which allows optimal performance in ...
  16. 制作自定义图标(icon)
  17. 基于Python实现Aitken迭代法和牛顿迭代法
  18. kafka 0.10.0.0 版本
  19. Crossplane 和 Terraform 的区别
  20. 卷积神经网络分类实战

热门文章

  1. android 视频监控相关(打包下载)
  2. 兴趣记忆法(1)顺口溜记忆
  3. C# 基础知识 (四).C#简介及托管代码
  4. 【数据结构与算法】之深入解析“三数之和”的求解思路与算法示例
  5. iOS之深入解析操作系统的架构
  6. LeetCode 多线程 1117. H2O 生成
  7. 529. Minesweeper
  8. 【机器视觉】 dev_close_window算子
  9. 【Linux网络编程】套接字简介
  10. linux xps 13 wifi,XPS13-9350安装linux以及网卡连接失败修复的临时方案