Java教程

算法

本文主要是介绍算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

排序

选择排序

思想:
先确定一个最小值的位置,一般为数组开始位置,然后后一个位置跟这个最小值比较,如果后一个值更小,就认为后一个值为最小值的位置;否则,最小值位置保持不变。一轮循环就能找到最小值的位置,然后交换最小值跟当前数组的第一个数位置。

空间复杂度:只占用了几个变量,额外空间复杂度为O(1)

冒泡排序

思想:
N个数的数组,在0~N-1 的范围上,从数组开始比较,谁大谁往右移,即交换它们的位置。一直比较,直到最大的数被交换到数组的最右边。在0~N-2的范围上继续此过程,直到数组所有数都经过此过程。

异或运算

0 ^ N = N
N ^ N = 0

异或运算满足交换律和结合律

a ^ b = b ^ a
(a ^ b) ^ c = a ^ (b ^ c)

这篇关于算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!