JavaScrip常見的一些算法總結(jié)
下面就簡單列舉一下javascript中常見的一些算法,需要的朋友可以做一下參考。當(dāng)然這些算法不僅僅適用于javascript,同樣也適用于其他語言。
一.線性查找:
比較簡單,屬于入門級的算法
//A為數(shù)組,x為要搜索的值 function linearSearch(A, x) { for (var index = 0; index < A.length; index++) { if (A[index] == x) { return index; } } return -1; }
二.二分查找:
又稱折半查找,適用于已排好序的線性結(jié)構(gòu)。
//A為已按"升序排列"的數(shù)組,x為要查詢的元素 //返回目標(biāo)元素的下標(biāo) function binarySearch(A, x) { var low = 0, high = A.length - 1; while (low <= high) { var mid = Math.floor((low + high) / 2); //下取整 if (x == A[mid]) { return mid; } if (x < A[mid]) { high = mid - 1; } else { low = mid + 1; } } return -1; }
三.冒泡排序:
//冒泡排序 function bubbleSort(A) { for (var i = 0; i < A.length; i++) { var sorted = true; //注意:內(nèi)循環(huán)是倒著來的 for (var j = A.length - 1; j > i; j--) { if (A[j] < A[j - 1]) { swap(A, j, j - 1); sorted = false; } } if (sorted) { return; } } }
四.插入排序:
//插入排序 //假定當(dāng)前元素之前的元素已經(jīng)排好序,先把自己的位置空出來, //然后前面比自己大的元素依次向后移,直到空出一個(gè)"坑", //然后把目標(biāo)元素插入"坑"中 function insertSort(A) { for (var index= 1; index< A.length; index++) { var x = A[index]; for (var j = index- 1; j >= 0 && A[j] > x; j--) { A[j + 1] = A[j]; } if (A[j + 1] != x) { A[j + 1] = x; println(A); } } return A; }
五.字符串反轉(zhuǎn):
//字符串反轉(zhuǎn)(比如:ABC -> CBA) function inverse(s) { var arr = s.split(''); var index= 0, j = arr.length - 1; while (index< j) { var t = arr[index]; arr[index] = arr[j]; arr[j] = t; index++; j--; } return arr.join(''); }
以上內(nèi)容給大家簡單介紹了JavaScrip常見的算法總結(jié),希望本文能夠給大家?guī)韼椭?/p>
- js版本A*尋路算法
- Javascript中的常見排序算法
- js+ajax實(shí)現(xiàn)的A*游戲路徑算法整理
- JavaScript blog式日歷控件新算法
- 常用JS加密編碼算法代碼
- 一個(gè)簡單的JavaScript 日期計(jì)算算法
- javascript &&和||運(yùn)算法的另類使用技巧
- JavaScript中幾種常見排序算法小結(jié)
- JavaScript生成GUID的多種算法小結(jié)
- js算法中的排序、數(shù)組去重詳細(xì)概述
- javascript中解析四則運(yùn)算表達(dá)式的算法和示例
- Java、JavaScript、Oracle、MySQL中實(shí)現(xiàn)的MD5加密算法分享
- js交換排序 冒泡排序算法(Javascript版)
相關(guān)文章
JavaScript實(shí)現(xiàn)異步圖像上傳功能
這篇文章主要介紹了JavaScript實(shí)現(xiàn)異步圖像上傳功能,本文展示了一種使用代碼示例立即顯示圖像的方法(使用圖像的Base64編碼版本),同時(shí)將其上載到服務(wù)器,而無需等待操作完成。需要的朋友可以參考下2018-07-07JS中通過url動(dòng)態(tài)獲取圖片大小的方法小結(jié)(兩種方法)
這篇文章主要介紹了JS中通過url動(dòng)態(tài)獲取圖片大小的方法小結(jié),本文給大家列舉了兩種方法,大家可以嘗試下看哪種方法好用,感興趣的朋友跟隨小編一起看看吧2018-10-10Bootstrap基本樣式學(xué)習(xí)筆記之表格(2)
Bootstrap提供了一個(gè)清晰的創(chuàng)建表格的布局,這篇文章主要介紹了Bootstrap學(xué)習(xí)筆記之表格基本樣式的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12瀏覽器圖片選擇預(yù)覽、旋轉(zhuǎn)、批量上傳的JS代碼實(shí)現(xiàn)
這篇文章主要介紹了瀏覽器圖片選擇預(yù)覽、旋轉(zhuǎn)、批量上傳的JS代碼實(shí)現(xiàn),有需要的朋友可以參考一下2013-12-12一個(gè)JavaScript防止表單重復(fù)提交的實(shí)例
防止重復(fù)表單提交的方法有很多,本文使用JavaScript來實(shí)現(xiàn)防止表單重復(fù)提交,很簡單,但很實(shí)用,新手朋友們不要錯(cuò)過2014-10-10js事件驅(qū)動(dòng)機(jī)制 瀏覽器兼容處理方法
下面小編就為大家?guī)硪黄猨s事件驅(qū)動(dòng)機(jī)制 瀏覽器兼容處理方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07easyui combobox開啟搜索自動(dòng)完成功能的實(shí)例代碼
下面小編就為大家?guī)硪黄猠asyui combobox開啟搜索自動(dòng)完成功能的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11微信小程序scroll-view實(shí)現(xiàn)字幕滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了微信小程序scroll-view實(shí)現(xiàn)字幕滾動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07