今天来给大家分享一个如何不使用中间变量来进行排序。
在排序中,最经典的就是冒泡排序了,但是在采用冒泡排序的方法时,大多数的情况下都使用了中间变量来进行值交换。
先来捋清一下思路,冒泡排序就是比较相邻两元素的大小,如果前一个数比后一个数字大就交换位置,通过中间变量来进行交换。
简单点来讲,就是两杯饮料进行交换,一杯葡萄汁A和一杯橙汁B换个杯子装,需要一个空杯子C来置换。

方法一

private static void bubble_sort() {int iArr[] = new int[5];         //声明一个5个变量存储空间的数组iArr[0] = 9;iArr[1] = 8;iArr[2] = 1;iArr[3] = 3;iArr[4] = 6;//大括号里的内容为数组的对象int iB[] = {1,4,3,8,2};//根据赋值的元素个数确定数组的大小int n= iB.length;//     int t = 0;//声明一个过渡变量,用于置换相邻的两个元素的值int i = 0;//声明一个变量,引用数组索引下标int j = 0;for(i = 0;i<4;i++) {for(j = n-1;j>i;j--) {if(iArr[j]<iArr[j-1]) {iArr[j] = iArr[j] + iArr[j-1];iArr[j-1] = iArr[j] - iArr[j-1];iArr[j] = iArr[j] - iArr[j-1];}}}for(i=0;i<n;i++) {System.out.println(iArr[i] + "");}System.out.println(" ");

方法二


public static void Exchage() {Scanner scanner = new Scanner(System.in);System.out.println("输入第一个变量A:");int a = scanner.nextInt();System.out.println("输入第二个变量B:");int b = scanner.nextInt();System.out.println("A=" + a + "\tB=" + b);//变量交换a = a ^ b;b = b ^ a;a = a ^ b;System.out.println("A=" + a + "\tB=" + b);

在排序中,如何不借助中间变量进行排序呢?()相关推荐

  1. ds排序--希尔排序_图解直接插入排序和希尔排序

    前言 这次我们介绍插入类排序中的 直接插入排序 和 希尔排序 . 对于直接插入排序,虽然它的时间复杂度也是 O(n^2) ,但是在元素 有序或近乎有序 的情况下,时间复杂度可以降为 O(n) ,效率比 ...

  2. 深度学习在美团点评推荐平台排序中的应用 widedeep推荐系统模型--学习笔记

    gbdt+lr的模型之前是知道怎么搞的,dnn+lr的模型也是知道的,但是都没有试验过 深度学习在美团点评推荐平台排序中的运用 原创 2017-07-28 潘晖 美团点评技术团队 美团点评作为国内最大 ...

  3. 在不借助中间变量的前提下,交换两个变量的值

    借助中间变量,可以很方便的交换两个变量的值.如果不借助中间变量,同样可以达到交换变量的目的. 数值相加减进行交换 int a = 10; int b = 12; a = b - a; //a = 2, ...

  4. 干货 | XGBoost在携程搜索排序中的应用

    作者简介 曹城,携程搜索部门高级研发工程师,主要负责携程搜索的个性化推荐和搜索排序等工作. 一.前言 在互联网高速发展的今天,越来越复杂的特征被应用到搜索中,对于检索模型的排序,基本的业务规则排序或者 ...

  5. 京东电商搜索中的语义检索与商品排序

    导读:本文将介绍京东搜索场景中的两块技术,语义检索与商品排序.在业界检索算法基础上,我们提出一系列更适用于电商场景的检索排序算法,在业务上取得了显著收益.其中的多篇论文已被 KDD/SIGIR 等收录 ...

  6. 强化学习在携程酒店推荐排序中的应用探索

    https://www.toutiao.com/a6708585355555111431/ 目前携程酒店绝大部分排序业务中所涉及的问题,基本可以通过应用排序学习完成.而其中模型训练步骤中所需的训练数据 ...

  7. Oracle排序中NULL值处理的五种常用方法

    1.缺省处理   Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前 2.使用nvl函数   nvl函数可以将输入参数为空时转换为一特定 ...

  8. python中字典按键或键值排序

    字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的.因此,为了使统计得到的结果更方便查看需要进行排序.Python中字典的排序分为按"键"排 ...

  9. Python统计网站访问日志log中的IP信息,并排序。。

    Python统计网站访问日志log中的IP信息,并排序,打印排名靠前的IP及访问量.示例代码如下: #!/usr/bin/env pythonipdict = {}file = open(" ...

最新文章

  1. 树莓派视觉小车 -- 物体跟踪(OpenCV)
  2. 阿里文娱搜索算法实践与思考
  3. mysql自增变量插入行时需要赋值
  4. OpenGL text rendering文字渲染的实例
  5. 如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
  6. 人工智能领域论文常见基本概念笔记
  7. 解决Github图片加载失败
  8. 完美粉红噪声及各种声波测试软件,粉红噪声的测试原理
  9. Netty(三) 什么是 TCP 拆、粘包?如何解决?
  10. 安全彻底的卸载工具App Cleaner Uninstaller for Mac
  11. 制作纯DOS启动U盘
  12. 中国行政村边界数据、乡镇街道边界
  13. HTML标签常用标签
  14. 《清华梦的粉碎》by王垠
  15. 科目二 后视镜 调节
  16. GBase 8c 迁移工具 DMT 简述
  17. DTI-ATS入门(2):DTI协议纵览
  18. HTML初识——概念
  19. 计算机专业竞争力度大吗,求职竞争最激烈十大行业出炉 计算机软件业榜首
  20. 王佩丰excel2010基础教程学习笔记(第六讲到第十讲)

热门文章

  1. 【美国留学大学】--普林斯顿大学
  2. Python:神奇的pivot函数!(行列转置)
  3. 2019中国城市排名出炉——2019新一线城市有没有你的家乡!?
  4. 工业机器人相关的编程语言
  5. 简记_铝电解电容的主要参数及应用
  6. 让你彩虹QQ显示你的IP一天72变
  7. Debugging with GDB
  8. java自行车怎么调档_变速如何调档及变速技巧
  9. 暴风魔镜VR(第一人称和第三人称)
  10. HTML应用程序(HTML Application)