javaScript數(shù)據(jù)結(jié)構(gòu)和算法--冒泡排序

冒泡排序比較任何兩個(gè)相鄰的數(shù),如果第一個(gè)數(shù)比第二個(gè)數(shù)大,則交換這兩個(gè)數(shù),元素向上移動(dòng)至正確的位置。

冒泡排序的算法實(shí)現(xiàn):

function BubbleSort() {

? ? const array = [];

? ? this.insert = function(item) {

? ? ? ? array.push(item);

? ? }

? ? this.toString = function() {

? ? ? ? return array.join();

? ? }

? ? const swap = function(index1, index2) {

? ? ? ? const temp = array[index1];

? ? ? ? array[index1] = array[index2];

? ? ? ? array[index2] = temp;

? ? }

? ? //冒泡排序

? ? this.bubbleSort = function() {

? ? ? ? for(let i=0; i<array.length; i++) {

? ? ? ? ? ? for(let j=0; j<array.length-1; j++) {

? ? ? ? ? ? ? ? if(array[j] > array[j+1]) {

? ? ? ? ? ? ? ? ? ? swap(j, j+1);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? //改進(jìn)版的冒泡排序

? ? this.bubbleSort1 = function() {

? ? ? ? for(let i=0; i<array.length; i++) {

? ? ? ? ? ? for(let j=0; j<array.length-1-i; j++) {

? ? ? ? ? ? ? ? if(array[j] > array[j+1]) {

? ? ? ? ? ? ? ? ? ? swap(j, j+1);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

}

var arr = new BubbleSort();

arr.insert(3);

arr.insert(13);

arr.insert(32);

arr.insert(23);

arr.insert(11);

arr.insert(8);

arr.insert(33);

arr.insert(28);

console.log(arr.toString()); // 3,13,32,23,11,8,33,28

arr.bubbleSort();

console.log(arr.toString()); // 3,8,11,13,23,28,32,33

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • /*去重*/ function delRepeat(arr){ var newArray=new Array();...
    Hedgehog_Dove閱讀 2,001評(píng)論 0 2
  • var sort = {debug:function(str){if(window.console && wind...
    qhaobaba閱讀 325評(píng)論 0 0
  • 冒泡排序 思路:重復(fù)遍歷數(shù)組中的元素,依次比較兩個(gè)相鄰的元素,如果前一個(gè)元素大于后一個(gè)元素,就依靠第三個(gè)變量將它們...
    晴天的晴q閱讀 2,882評(píng)論 0 1
  • 作為一個(gè)年輕人,我相信命運(yùn)的程度真的超出了自己的認(rèn)知范圍。 記得上大學(xué)那會(huì)兒,我每天說的最多的話就...
    90后閑散人閱讀 796評(píng)論 1 5
  • 今早刷了許久新聞,翻閱王寶強(qiáng)先生的相關(guān)信息。內(nèi)心之中多少有些感嘆。雖然隔著太遠(yuǎn),不了解王寶強(qiáng)先生的為人,但看過一些...
    化濁閱讀 159評(píng)論 0 1

友情鏈接更多精彩內(nèi)容