`
gaojingsong
  • 浏览: 1182325 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

冒泡排序--预备知识[【两个数字交换】

阅读更多

1) 算术运算

// a=10;b=12;

// a=b-a; //a=2;b=12

// b=b-a; //a=2;b=10

// a=b+a; //a=10;b=10

// 它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。

// 具体过程:

// 第一句“a=b-a”求出ab两点的距离,并且将其保存在a中;

// 第二句“b=b-a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;

// 第三句“a=b+a”求出b到原点的距离(a到原点距离与ab两点距离之和),并且将其保存在a中。

// 完成交换。

 

 

 

// 2) 异或运算

// 此算法能够实现是由异或运算的特点决定的,通过异或运算能够使数据中的某些位翻转,其他位不变。

// 这就意味着任意一个数与任意一个给定的值连续异或两次,值不变。

// 原理:一个数同另一数连续异或2次,可还原为自已

//      该算法利用二进制数(数在计算机就是以二进制的存储的<是补码>)按每一位求异或(两个相同时

            为 0;一个是1,一个是0为1)的一个性质——对任意给定的一个二进制数来说,它与任意一个二进            制数,连续异或两次最终得到的还是它本身即有(a = a ^ b ^b)。

//       证明:因为异或运算是可结合的(满足结合律),且可交换的,所以任何情况一个数和另一个数连                续异或都可成 “a ^b ^ b”的形式

// 再由结合性 a^b^b = a^(b^b) = a^0 = a  #

// 按照这个思想,再结合给出的注释,交换算法就很简单了。

 

         int num1 =3;

         int num2 =8;

         num1 = num1 ^ num2 ; // -1-

         num2 = num1 ^ num2 ; // -2-

         num1 = num1 ^ num2 ; // -3-

 

         System.out.println(num1 +","+num2);

 

 

 

/3)借助第三变量,

// 例子给你三只容量相同的杯子,一杯雪碧,一杯白酒,还有一只空杯子;现在想实现白酒和雪碧互换。算法原理很简单,不多说。

 

 

  • 大小: 11.6 KB
0
1
分享到:
评论

相关推荐

    冒泡排序-排序过程 冒泡排序-排序过程

    冒泡排序是一种简单的排序算法,其基本思想是通过重复地遍历要排序的列表,比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历列表的工作是重复进行的,直到没有再需要交换的元素,也就是说该列表已经...

    冒泡排序-冒泡排序冒泡排序-冒泡排序

    冒泡排序 冒泡排序 冒泡排序 冒泡排序 冒泡排序

    MIPS-汇编语言-冒泡排序-含伪代码以及完整注释

    MIPS-汇编语言-冒泡排序-含伪代码以及完整注释,可以直接使用

    S7-200SMART冒泡排序-优化版(可选择升序降序及数据类型等).zip

    // 待交换的两个元素的引用 BEGIN CASE Type OF "INT": A := B; B := A; "DINT": A := B; B := A; "REAL": A := B; B := A; // 其他数据类型... END_CASE END_FUNCTION ``` 在实际应用中,用户可以通过...

    --C++冒泡排序--

    --C++冒泡排序--

    冒泡排序-14-表单提交.ev4.rar

    冒泡排序的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越...

    C#四种排序方法--交换排序 选择排序 冒泡排序 插入排序

    交换排序 选择排序 冒泡排序 插入排序

    python冒泡排序-16-集合总结.ev4.rar

    冒泡排序的基本思想是通过重复遍历待排序的列表,比较相邻元素并交换位置,直到没有任何一对数字需要交换,从而达到排序的目的。这个过程就像水底下的气泡一样,小的元素逐渐“浮”到列表的顶端。冒泡排序的时间...

    冒泡排序-时间排序

    冒泡排序是一种基础且历史悠久的排序算法,它通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到没有再需要交换的元素,即整个数列完成排序。这个过程就像水底下的气泡一样逐渐...

    数据结构:交换排序-冒泡排序实验指导

    ### 数据结构:交换排序-冒泡排序实验指导 #### 实验背景与目标 在计算机科学领域,数据结构和算法是核心研究对象,其中排序算法作为基础且重要的算法之一,广泛应用于各类数据处理场景。本实验旨在深入理解并掌握...

    冒泡排序-java版本

    冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 附件中是使用 ...

    冒泡排序-12-表格标签.ev4.rar

    冒泡排序是一种基础且经典的排序算法,其工作原理是通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成...

    冒泡排序-Java 版本

    1. 比较相邻的元素,如果前一个比后一个大,就交换这两个元素的位置。 2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 3. 针对所有的元素重复以上的步骤,...

    冒泡排序-使用python实现的冒泡排序算法.zip

    2. **比较与交换**:对每一对相邻的元素进行比较,如果它们的顺序错误(即前者大于后者),则交换这两个元素的位置。 3. **重复步骤2**:对数组中的每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。这步...

    冒泡排序---选择,插入和快速排序

    冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行的,直到没有再需要交换,也就是说该数列已经排序完成。 #### 实现...

    冒泡排序-文件读写.c

    冒泡排序-文件读写.c

    冒泡排序-Java版本

    冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。 这段代码首先...

    python冒泡排序-07-软件的安装.ev4.rar

    冒泡排序的工作原理是通过重复遍历待排序的序列,比较相邻元素并根据需要交换位置,使得每次遍历时最大(或最小)的元素逐渐“浮”到序列的一端。这个过程就像水中的气泡一样上升,因此得名“冒泡排序”。 在这个...

Global site tag (gtag.js) - Google Analytics