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 ...