一.四种方式交换两个数字 直接交换:失败 包装类交换:失败 数组方式交换:成功 成员变量交换:成功 1 public class SwapNumbers { 2 public int a; 3 public int b; 4 5 //包装类交换 6 public static void swap ( ...
分类:
编程语言 时间:
2020-01-20 15:12:35
阅读次数:
109
1. 冒泡排序 算法核心思想 在数组arr[n]中,从第一个数开始,拿arr[i]和后面的数arr[i+1]进行比较,如果arr[i]比后面的大,就交换两个数的位置,这样遍历一遍数组后,把最大的数据排在了最后面,之后继续循环排剩下的n-1个数,直到完成所有的排序,由于每次都是把最大的排到最后面,就好 ...
分类:
编程语言 时间:
2019-12-09 21:37:05
阅读次数:
83
#include <stdio.h> void swap(int *x,int *y); int main() { int m,n; scanf("%d%d",&m,&n); printf("before swap:m=%d n=%d\n",m,n); swap(&m,&n); //注意引用函数,两 ...
分类:
其他好文 时间:
2019-11-23 20:11:16
阅读次数:
79
今天学python,突然发现没有swap函数,那怎么交换两个数呢,难道手写交换,那效率太差了 我们看一下实例 a = 1 b = 2 a,b = b,a print(a,b) 其实很简单的原理,然而我却琢磨了半天,可能陷入了过程化编程的思维里,一直纠结a和b到底谁先赋值,怎么交换了,想了半天百度一下 ...
分类:
编程语言 时间:
2019-09-30 19:53:16
阅读次数:
73
题意 给定$n$个数,每次交换两个数,输出交换后的逆序数。 分析 交换两个数只会影响到对应区间内的逆序数,具体为减少区间$[l+1,r 1]$中比$a[r]$大的数的个数,增加比$a[r]$大的数的个数,减少比大的数的个数,$a[l]$增加比$a[l]$小的数的个数。 转化为单点修改+查询区间值域个 ...
分类:
其他好文 时间:
2019-09-10 23:28:40
阅读次数:
72
快排模板 1. 定义两个指针,左指针从左边界开始,右指针从右边界开始 2. 左指针指向的数小于x,左指针向右移动,直到指向的数大于等于x 3. 右指针指向的数大于x, 右指针向左移动,直到指向的数小于等于x 4. 交换两个数,继续循环 5. 直到两个指针相等 void quick_sort(int ...
分类:
其他好文 时间:
2019-06-29 23:42:34
阅读次数:
182
1、判断奇偶数 如果把一个数n以二进制数的形式表示的话,我们只需要判断最后一个二进制位是1还是0即可。如果是1,则代表奇数,否则为偶数。代码如下: 2、交换两个数 我们都知道两个相同的数异或之后的结果为0,即 n ^ n = 0,并且任何数与0异或之后等于它本身,即 n ^ 0 = n。 于是我们把 ...
分类:
其他好文 时间:
2019-06-02 20:33:51
阅读次数:
436
1.交换两个数 传统写法: 不使用额外的辅助变量 任何数与0异或都是它本身; 任何数与它本身异或都是0; ...
分类:
其他好文 时间:
2019-05-24 15:49:45
阅读次数:
70
内容过程中,把写内容过程中经常用到的内容收藏起来,如下内容是关于C语言不定义中间变量交换两个数字的的内容,应该能对码农也有用途。#include<stdio.h>main(){inta,b;printf("pleaseinputa:");printf("pleaseinputb:");printf("a=%d,b=%d",a,
分类:
编程语言 时间:
2019-04-11 16:17:52
阅读次数:
144
1、冒泡排序 思想:比较相邻的前后两个数据,如果前面的大于后面的,就交换两个数据位置,知道遍历完数组,排序完成。 实现: 2、选择排序 思想:第一次遍历数组找出最小的值与第一个元素交换,第二次遍历N-1个数据,找出最小的值与第二个元素交换,直到排序完成。 实现: 3、快速排序 思想:先从数组找设置一 ...
分类:
编程语言 时间:
2019-03-21 14:23:40
阅读次数:
132