日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

交换两个变量ab的值PHP,由[交换两个变量的值问题]理解程序的时空复杂度

發(fā)布時(shí)間:2024/4/18 php 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 交换两个变量ab的值PHP,由[交换两个变量的值问题]理解程序的时空复杂度 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

由一個(gè)編程經(jīng)典問題,交換兩個(gè)變量的值入手,理解程序的時(shí)空復(fù)雜度(以下均使用PHP代碼演示問題的解決方法)解決問題的方法一:1.方法文字描述:使用一個(gè)中間變量temp,實(shí)現(xiàn)兩個(gè)變量值的互換2.實(shí)現(xiàn)的具體代碼:<?php

//聲明兩個(gè)變量$a,$b

$a?=?$_GET['a'];

$b?=?$_GET['b'];

//打印沒有互換前,$a和$b

var_dump("未替換前:a={$a}?and?b={$b}");

//使用中間變量$temp實(shí)現(xiàn)$a和$b互換

$temp?=?$a;

$a?=?$b;

$b?=?$temp;

var_dump("使用temp中間變量替換后:a={$a}?and?b={$b}");

?>

3.此時(shí)時(shí)空復(fù)雜度

時(shí)間復(fù)雜度即程序運(yùn)算次數(shù),3次賦值運(yùn)算

空間復(fù)雜度即占用內(nèi)存大小,除了原本的$a和$b兩個(gè)變量,增加了$temp中間變量,所以空間復(fù)雜度為3(具體是3個(gè)字符串)

為了降低內(nèi)存使用量,避免使用中間變量的實(shí)現(xiàn)方式,使用異或運(yùn)算符實(shí)現(xiàn)

解決問題的方法二:

1.方法文字描述:使用異或運(yùn)算符

2.實(shí)現(xiàn)的具體代碼:<?php

//聲明兩個(gè)變量$a,$b

$a?=?$_GET['a'];

$b?=?$_GET['b'];

//打印沒有互換前,$a和$b

var_dump("未替換前:a={$a}?and?b={$b}");

//使用異或運(yùn)算實(shí)現(xiàn)$a和$b互換

$a?=?$a?^?$b;

$b?=?$a?^?$b;

$a?=?$a?^?$b;

var_dump("使用異或運(yùn)算符替換后:a={$a}?and?b={$b}");

?>

3.此時(shí)的時(shí)空復(fù)雜度時(shí)間,3次賦值運(yùn)算,3次異或運(yùn)算,6次空間,只使用原本的2個(gè)變量,$a和$b,空間復(fù)雜度為2注意:在PHP中得異或操作,前面的字符串的長度要大于等于后面的字符串,因?yàn)?#xff0c;比如'abc'?^?'defgh',PHP就只會(huì)執(zhí)行'abc' ^ 'def'。gh會(huì)被省略

總結(jié)

以上是生活随笔為你收集整理的交换两个变量ab的值PHP,由[交换两个变量的值问题]理解程序的时空复杂度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。