亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

指定誤差求開平方之不同算法實現之間的效率比較(java實現)

2019-11-14 11:13:38
字體:
來源:轉載
供稿:網友

本文通過比較對數字指定誤差的求開平方不同算法實現之間的效率比較,來使程序入門者對不同算法的性能差距有直觀的印象,并且對算法的作用有深刻的體會。

算法一(暴力遍歷法):

	/**	 * 求開方	 * @param source 被開方數,大于等于0	 * @param deviation 誤差范圍	 * @return	 */	public static double sqrt(double source,double deviation) {				if(source < 0 || deviation <0) {			throw new RuntimeException("don't transmit negtive");		}		long count = 1;//統計循環執行次數		double result = 0;		while ((result + 1) * (result + 1) < source) {			count++;			result++;		}		while ((result + deviation) * (result + deviation) < source ) {			count++;			result += deviation;		}		System.out.PRintln("sqrt total count:" + count);		return result;	}

本算法是將計算結果從0開始一點一點增加并進行試探,直到接近真實結果誤差范圍內。

算法二(步長調整法):

/**	 * 求開方 優化,步長調整	 * @param source 被開方數,大于等于0	 * @param deviation 誤差范圍	 * @return	 */	public static double sqrt1(double source,double deviation) {				if(source < 0 || deviation <0) {			throw new RuntimeException("don't transmit negtive");		}		long count = 1;//統計循環執行次數		double result = 0;		int stepI = 2;		double stepD = deviation;		long stepCount = 1;		while ((result + 1) * (result + 1) < source) {			count++;			stepCount++;			if(stepCount%3==0){  //加快結果累計,調整步長				if((result + stepI) * (result + stepI) < source) {					result += stepI;					stepI++;					continue;				} else {					stepI--;				}			}			result++;		}		stepCount = 0;		while ((result + deviation) * (result + deviation) < source ) {			count++;			stepCount++;			if(stepCount%3==0){  //加快結果累計,調整步長				if((result + stepD) * (result + stepD) < source) {					result += stepD;					stepD+=deviation;					continue;				} else {					stepD-=deviation;				}			}			result += deviation;		}		System.out.println("sqrt1 total count :" + count);		return result;	}

本算法每當執行循環三次時調整一次步長,讀者可以自行定制更加高效的調整步長策略。

算法三(二分法):

	/**	 * 求開方 優化,二分法	 * 該方法效率明顯比前兩個方法快的多	 * @param source 被開方數,大于等于0	 * @param deviation 誤差范圍	 * @return	 */	public static double sqrt2(double source,double deviation) {				if(source < 0 || deviation <0) {			throw new RuntimeException("don't transmit negtive");		}		long count = 1;//統計循環執行次數		double result = 0;				double head = source;		double tail = 0;		while(true) {			count++;			if(((head+tail)/2) * ((head+tail)/2) < source) {				tail = (head+tail)/2;			} else {				head = (head+tail)/2;			}			result = (head+tail)/2;			if((result + deviation)*(result + deviation) >= source &&					(result - deviation)*(result - deviation) <= source) {				break;			}		}		System.out.println("sqrt2 total count:" + count);		return result;	}

本算法為典型的二分法,算法的原理如下:將0和source分別作為結果的初始下界和上界,將下界和上界的平均值與真實結果比較并調整結果的下界或者上界,直至結果位于真實結果的誤差范圍內。

上面已經給出了算法的實現,算法可能的難點是怎么判斷算出的值是否在誤差范圍內,讀者需要注意這點。下面通過幾組數據簡單的比較一下不同算法實現之間的效率差別:

                                                                      

上圖中,我們測試了三組數據,從標紅的數據可以看出,算法二明顯優于算法一,而算法三明顯優于算法二。當執行第三組數據時,算法一甚至要等一小會兒才能執行完,而算法三卻馬上就能得到結果,而且算法三隨著問題規模的擴大執行次數卻增長很慢,而這只是簡單的幾行代碼改進的結果。從這個算法問題中我們可以看到不同算法之間效率的巨大差距,由此不難體會在許多算法應用場合下算法巨大的威力。


上一篇:簡單工廠模式

下一篇:Leetcode 120. Triangle

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲成人激情在线观看| 欧美一级视频免费在线观看| 色综合久久中文字幕综合网小说| 国产精品久久国产精品99gif| 欲色天天网综合久久| 日本精品免费一区二区三区| 国产日韩欧美影视| 久久久久久久久久久网站| 国产福利精品在线| 日本久久久久久久久久久| 亚洲另类图片色| 欧美日韩亚洲激情| 欧美电影《睫毛膏》| 日韩男女性生活视频| 国产精品极品尤物在线观看| 久久久天堂国产精品女人| 美日韩精品免费视频| 久久乐国产精品| 日韩激情视频在线| 69**夜色精品国产69乱| 日韩在线视频免费观看| 国产999精品久久久影片官网| 国产在线a不卡| 日韩成人在线网站| 91在线视频导航| 国产精品视频精品| 欧美在线精品免播放器视频| 久久精品国产清自在天天线| 中文字幕日韩精品在线| 国产精品日韩在线| 一区二区亚洲欧洲国产日韩| 欧美综合国产精品久久丁香| 欧美性猛交xxx| 4438全国亚洲精品在线观看视频| 中文字幕亚洲欧美日韩高清| 成人春色激情网| 国产精品视频永久免费播放| 亚洲一二三在线| 中日韩美女免费视频网址在线观看| 蜜月aⅴ免费一区二区三区| 欧美在线亚洲在线| 91综合免费在线| 亚洲精品欧美极品| 成人免费自拍视频| 国产va免费精品高清在线| 成人免费福利视频| 欧美视频二区36p| 日韩中文视频免费在线观看| 一二美女精品欧洲| 精品偷拍一区二区三区在线看| 午夜精品久久久久久久久久久久| 亚洲理论在线a中文字幕| 欧美黄色免费网站| 日韩在线视频国产| 国产精品视频白浆免费视频| 国模吧一区二区| 欧美巨大黑人极品精男| 欧美性videos高清精品| 久久久久久亚洲精品不卡| 国产精品网站视频| 欧美黑人性猛交| 国产精品日日做人人爱| 久久99精品国产99久久6尤物| 欧美国产第一页| 狠狠色香婷婷久久亚洲精品| 国产精品中文久久久久久久| 国内免费久久久久久久久久久| 456国产精品| 国产亚洲aⅴaaaaaa毛片| 97av在线视频| 性色av一区二区三区在线观看| 国产精品美女www爽爽爽视频| 亚洲乱码国产乱码精品精| 亚洲天堂av高清| 久久国内精品一国内精品| 伊人久久大香线蕉av一区二区| 美女性感视频久久久| 欧洲亚洲在线视频| 成人a视频在线观看| 日韩在线观看免费高清完整版| 九九热这里只有精品6| 国语自产精品视频在免费| 亚洲级视频在线观看免费1级| 欲色天天网综合久久| 国产精自产拍久久久久久| 懂色aⅴ精品一区二区三区蜜月| 国产日韩欧美日韩| 黑人巨大精品欧美一区二区免费| 欧美性受xxxx黑人猛交| 亚洲午夜激情免费视频| 欧美日韩激情视频8区| 国产综合视频在线观看| 日韩电视剧在线观看免费网站| 777午夜精品福利在线观看| 亚洲精品国产欧美| 91精品在线看| 最近2019年日本中文免费字幕| 精品一区二区三区四区在线| 久久的精品视频| 国产视频精品免费播放| 欧美精品在线网站| 国产综合香蕉五月婷在线| 国产精品欧美日韩久久| 成人黄色在线免费| 伊人伊成久久人综合网小说| 国产成人啪精品视频免费网| 一区二区三区在线播放欧美| 日韩精品日韩在线观看| 欧美丰满老妇厨房牲生活| 国产成人91久久精品| 美女福利精品视频| 国产精品在线看| 欧美剧在线观看| 欧美性xxxxxxxxx| 中文字幕精品网| 亚洲国产欧美在线成人app| 中文字幕日韩av电影| 97视频在线观看视频免费视频| 精品福利免费观看| 日韩国产精品亚洲а∨天堂免| 青青在线视频一区二区三区| 国产午夜一区二区| 国产黑人绿帽在线第一区| 日韩成人中文电影| 国内精品美女av在线播放| 欧美噜噜久久久xxx| 国产欧美一区二区三区久久人妖| 精品成人在线视频| 国产精品国产亚洲伊人久久| 精品亚洲一区二区三区在线播放| 亚洲一区中文字幕| 亚洲国产97在线精品一区| 国产精品美乳一区二区免费| 中文字幕在线看视频国产欧美在线看完整| 亚洲天堂免费在线| 97免费中文视频在线观看| 精品无人区乱码1区2区3区在线| 久久99青青精品免费观看| 国产一区私人高清影院| 日韩毛片在线看| 亚洲欧美色图片| 欧美专区中文字幕| 欧美主播福利视频| 亚洲欧美国产精品| 日韩在线视频观看正片免费网站| 国产精品国产三级国产专播精品人| 欧美贵妇videos办公室| 日韩毛片中文字幕| 国产精品mp4| 国产精品日本精品| 91欧美精品成人综合在线观看| 久热在线中文字幕色999舞| 久久精品视频在线播放| 国产一区二区视频在线观看| 国产亚洲成av人片在线观看桃| 日韩综合中文字幕| 午夜免费日韩视频| 国产精品人成电影在线观看| 亚洲美女av在线播放| 亚洲综合一区二区不卡| 欧美激情小视频| 日韩免费在线免费观看| 国产精品一区久久久| 成人情趣片在线观看免费|