algorytm.org

Implementacja w JavaScript



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Sortowanie przez wstawianie (insertionsort) - Implementacja w JavaScript
Ocena użytkownikóww: *****  / 0
SłabyŚwietny
Nadesłany przez Maciej Lipiński, 11 lutego 2016 01:23
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

insertionsort.js:
//INSERTIONSORT
//sortowanie przez zliczanie
//www.algorytm.org

$(document).ready(function init(){

	///////////////////
	// INSERTIONSORT //
	///////////////////

	function InsertionSort(myTable) {
		var sortedTable = [];
		var temp, inserted, tabLength;
		while (myTable.length) {
			temp = myTable.pop();
			console.log(temp);
			inserted = false;
			tabLength = sortedTable.length;
			for (var i=0; i<tabLength; i++) {
				//jezeli w posortowanej tablicy jest element wiekszy od aktualnie wstawianego
				if (temp < sortedTable[i]) {
					//zrob miejsce dla elementu wstawianego
					for (var j=tabLength-1; j>i-1; j--) {
						sortedTable[j+1] = sortedTable[j];
					}
					//wstaw element przed elementem wiekszym
					sortedTable[i] = temp;
					inserted = true;
					break;
				}
			}
			//jezeli nie wstawiono jeszcze elementu to oznacza
			// ze aktualnie w tablicy znajduje sie tylko elementy mniejsze od niego
			//w takim przypadku wstaw element na koniec
			if (!inserted) {
				sortedTable.push(temp);
			}
			console.log(sortedTable);
		}
		return sortedTable;
	}

	//////////
	// TEST //
	//////////

	function getRandom(min,max) {
	    var myRandom = max+1;
	    while (myRandom > max) {
	        myRandom = parseInt(Math.random()*(max-min+1) + min);
	    }
	    return myRandom;
	}
	function GenerateTable(min,max,legth) {
		var myTable = [];
		for(var i=0; i<legth; i++) {
			myTable.push(getRandom(min,max));
		}
		return myTable;
	}

	var tableBefore = GenerateTable(1,9,10);
	console.log(tableBefore);
	var tableAfter = InsertionSort(tableBefore);
	console.log(tableAfter);


});



Dodaj komentarz