有趣有用的小演算法 交換演算法

2021-08-21 14:23:07 字數 656 閱讀 1342

1.中間值交換

int a=1,b=2;

int c;//把c作為中間值交換

//交換a,b的值

c=a;

a=b;

b=c;

這個演算法相當於交換ab兩杯水,然後拿出乙個空杯子c,先讓c裝滿a的水,然後將b的水倒入a裡面,這樣a就裝了b的水。最後把c的水倒入b中。

2.相減交換

int a=100,b=200

a=a+b;//將ab的值放進a裡面a=100+200

b=a-b;//然後a減去b的值,剩下a原來的值,所以a的值就賦給100 b=100+200-200

a=a-b;//最後a減去b(b現在裝的是a原來的值)的值,剩下的就是b原來的值 a=100+200-100

這個交換演算法與上乙個想比,節省了空間,但是有乙個弊端,那就是a+b不能超出int的範圍。

3.異或演算法交換值

int a=100,b=200;

a=a^b;

b=a^b;

a=a^b;

異或,就是相同出0,不同出1,1+1=0,1+0=1

這個演算法的好處是不用擔心超出範圍,也節省了空間,缺點是只能對整形值和char型進行交換,浮點型的不能。

排序演算法 交換演算法

1.先定義一些基礎函式 1 include 2 3using namespace std 45 void swap int a,int b 611 12int main 13 15int n sizeof a sizeof a 0 16 17bubblesort a,n 具體演算法見後面章節 18q...

金鑰交換演算法

使用對稱加密演算法時,金鑰交換是個大難題,所以diffie和hellman提出了著名的diffie hellman金鑰交換演算法。diffie hellman金鑰交換演算法原理 1 alice與bob確定兩個大素數n和g,這兩個數不用保密 2 alice選擇另乙個大隨機數x,並計算a如下 a gx ...

金鑰交換演算法

使用對稱加密演算法時,金鑰交換是個大難題,所以diffie和hellman提出了著名的diffie hellman金鑰交換演算法。diffie hellman金鑰交換演算法原理 1 alice與bob確定兩個大素數n和g,這兩個數不用保密 2 alice選擇另乙個大隨機數x,並計算a如下 a gx ...