/ Forside/ Teknologi / Udvikling / Java Scripts / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Bubble Sort
Fra : lars09
Vist : 528 gange
20 point
Dato : 07-02-02 21:58

Hvordan fremstiller man en såkaldt bubblesort i JavaScript !! Er det overhovedet muligt ??

 
 
Accepteret svar
Fra : Nyhedsbruger

Modtaget 20 point
Dato : 08-02-02 11:01

lars09 wrote in dk.edb.internet.webdesign.clientside:
> Hvordan fremstiller man en såkaldt bubblesort i JavaScript !! Er det
> overhovedet muligt ??ine.dk' and Active = 1si gearing
>
>

Ja - selvfølgelig er det muligt;)

<html>
<head>

<script>
var intAr = new Array()

intAr[0] = 1;
intAr[1] = 3;
intAr[2] = 2;
intAr[3] = 0;
intAr[4] = 7;
intAr[5] = 4;
intAr[6] = 8;

function bubbleSort(a){
for (i = a.length; --i>=0; ) {
swapped = false;
   for (j = 0; j<i; j++) {
    if (a[j] > a[j+1]) {
    T = a[j];
      a[j] = a[j+1];
      a[j+1] = T;
      swapped = true;
    }
   }
   if (!swapped)
    return;
   }
}
</script>

</head>
<body>

<script>
document.writeln('Før sortering...<br>');
for (k=0;k < intAr.length;k++)
document.writeln(intAr[k] + '<br>')
bubbleSort(intAr);
document.writeln('Efter sortering...<br>');
for (k=0;k < intAr.length;k++)
document.writeln(intAr[k] + '<br>')
</script>
</body>
</html>



mvh.
Carsten


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kommentar
Fra : Nyhedsbruger


Dato : 08-02-02 13:33

lars09 wrote in dk.edb.internet.webdesign.clientside:
> Hvordan fremstiller man en såkaldt bubblesort i JavaScript !! Er det
> overhovedet muligt ??
> --
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"
>

Ja og hvis du nu vil have sortering af en hel tabel,
så har jeg fundet flg ude i samfundet, der virker ret fix...:

der er en HTML-del og et javascript.js, altså 2 filer
her er html-delen:

-----------------
<html>

<head><script LANGUAGE="JavaScript" src="sortering.js"></script>

<title></title>
</head>

<body>

<table WIDTH="75%" BORDER="1" CELLSPACING="1" CELLPADDING="1"
name="rsTable" id="rsTable"
cols="5">
<tr bgcolor="mediumblue">
<td bgcolor="#00FFFF"><big><font color="white" face="Verdana"><a
href="javascript:sortTable(0, rsTable);">ID</a></font></big></td>
<td bgcolor="#00FFFF"><big><font color="white" face="Verdana"><a
href="javascript:sortTable(1, rsTable);">NAME</a></font></big></td>
<td bgcolor="#00FFFF"><big><font color="white" face="Verdana"><a
href="javascript:sortTable(2, rsTable);">DATE</a></font></big></td>
<td bgcolor="#00FFFF"><big><font color="white" face="Verdana"><a
href="javascript:sortTable(3,
rsTable);">PHONE</a></font></big></td>
<td bgcolor="#00FFFF"><big><font color="white" face="Verdana"><a
href="javascript:sortTable(4,
rsTable);">WORKFLOW</a></font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">1</font></big></td>
<td><big><font face="Verdana">Andy Berry</font></big></td>
<td><big><font face="Verdana">4/9/72</font></big></td>
<td><big><font face="Verdana">763-555-1212</font></big></td>
<td><big><font face="Verdana">REVIEW</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">2</font></big></td>
<td><big><font face="Verdana">Dan Developer</font></big></td>
<td><big><font face="Verdana">9/3/63</font></big></td>
<td><big><font face="Verdana">215-555-1400</font></big></td>
<td><big><font face="Verdana">SAME</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">3</font></big></td>
<td><big><font face="Verdana">John Javascript</font></big></td>
<td><big><font face="Verdana">3/4/71</font></big></td>
<td><big><font face="Verdana">612-555-0987</font></big></td>
<td><big><font face="Verdana">REVIEW</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">4</font></big></td>
<td><big><font face="Verdana">Jerry JSPage</font></big></td>
<td><big><font face="Verdana">8/2/71</font></big></td>
<td><big><font face="Verdana">215-555-7654</font></big></td>
<td><big><font face="Verdana">SAME</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">5</font></big></td>
<td><big><font face="Verdana">Mary Mainframe</font></big></td>
<td><big><font face="Verdana">3/28/70</font></big></td>
<td><big><font face="Verdana">763-555-8295</font></big></td>
<td><big><font face="Verdana">REVIEW</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">6</font></big></td>
<td><big><font face="Verdana">Elaine Ecommerce</font></big></td>
<td><big><font face="Verdana">2/28/29</font></big></td>
<td><big><font face="Verdana">612-555-1338</font></big></td>
<td><big><font face="Verdana">REVIEW</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">7</font></big></td>
<td><big><font face="Verdana">John Smith</font></big></td>
<td><big><font face="Verdana">12/31/00</font></big></td>
<td><big><font face="Verdana">610-555-0987</font></big></td>
<td><big><font face="Verdana">SAME</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">8</font></big></td>
<td><big><font face="Verdana">Candy Coder</font></big></td>
<td><big><font face="Verdana">4/1/70</font></big></td>
<td><big><font face="Verdana">000-555-9099</font></big></td>
<td><big><font face="Verdana">SAME</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">9</font></big></td>
<td><big><font face="Verdana">Pippy Long Stocking</font></big></td>
<td><big><font face="Verdana">1/1/30</font></big></td>
<td><big><font face="Verdana">613-555-1338</font></big></td>
<td><big><font face="Verdana">DIFFERENT</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">10</font></big></td>
<td><big><font face="Verdana">111222</font></big></td>
<td><big><font face="Verdana">2/2/01</font></big></td>
<td><big><font face="Verdana">345-555-7654</font></big></td>
<td><big><font face="Verdana">DIFFERENT</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">11</font></big></td>
<td><big><font face="Verdana">Apple Man</font></big></td>
<td><big><font face="Verdana">3/13/74</font></big></td>
<td><big><font face="Verdana">215-555-4043</font></big></td>
<td><big><font face="Verdana">DIFFERENT</font></big></td>
</tr>
<tr>
<td><big><font face="Verdana">12</font></big></td>
<td><big><font face="Verdana">Henning</font></big></td>
<td><big><font face="Verdana">6/20/56</font></big></td>
<td><big><font face="Verdana">212-418-1234</font></big></td>
<td><big><font face="Verdana">AND</font></big></td>
</tr>
</table>
</body>
</html>
-----------------------------------------------
og her er java delen, der skal kaldes
sortering.js
-------------------------------------------
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
function setDataType(cValue)
{
// THIS FUNCTION CONVERTS DATES AND NUMBERS FOR PROPER ARRAY
// SORTING WHEN IN THE SORT FUNCTION
var isDate = new Date(cValue);
if (isDate == "NaN")
{
if (isNaN(cValue))
{
// THE VALUE IS A STRING, MAKE ALL CHARACTERS IN
// STRING UPPER CASE TO ASSURE PROPER A-Z SORT
cValue = cValue.toUpperCase();
return cValue;
}
else
{
// VALUE IS A NUMBER, TO PREVENT STRING SORTING OF A NUMBER
// ADD AN ADDITIONAL DIGIT THAT IS THE + TO THE LENGTH OF
// THE NUMBER WHEN IT IS A STRING
var myNum;
myNum = String.fromCharCode(48 + cValue.length) + cValue;
return myNum;
}
}
else
{
// VALUE TO SORT IS A DATE, REMOVE ALL OF THE PUNCTUATION AND
// AND RETURN THE STRING NUMBER
//BUG - STRING AND NOT NUMERICAL SORT .....
// ( 1 - 10 - 11 - 2 - 3 - 4 - 41 - 5 etc.)
var myDate = new String();
myDate = isDate.getFullYear() + " " ;
myDate = myDate + isDate.getMonth() + " ";
myDate = myDate + isDate.getDate(); + " ";
myDate = myDate + isDate.getHours(); + " ";
myDate = myDate + isDate.getMinutes(); + " ";
myDate = myDate + isDate.getSeconds();
//myDate = String.fromCharCode(48 + myDate.length) + myDate;
return myDate ;
}
}
function sortTable(col, tableToSort)
{
var iCurCell = col + tableToSort.cols;
var totalRows = tableToSort.rows.length;
var bSort = 0;
var colArray = new Array();
var oldIndex = new Array();
var indexArray = new Array();
var bArray = new Array();
var newRow;
var newCell;
var i;
var c;
var j;
// ** POPULATE THE ARRAY colArray WITH CONTENTS OF THE COLUMN
SELECTED
for (i=1; i < tableToSort.rows.length; i++)
{
colArray[i - 1] =
setDataType(tableToSort.cells(iCurCell).innerText);
iCurCell = iCurCell + tableToSort.cols;
}
// ** COPY ARRAY FOR COMPARISON AFTER SORT
for (i=0; i < colArray.length; i++)
{
bArray[i] = colArray[i];
}
// ** SORT THE COLUMN ITEMS
//alert ( colArray );
colArray.sort();
//alert ( colArray );
for (i=0; i < colArray.length; i++)
{ // LOOP THROUGH THE NEW SORTED ARRAY
indexArray[i] = (i+1);
for(j=0; j < bArray.length; j++)
{ // LOOP THROUGH THE OLD ARRAY
if (colArray[i] == bArray[j])
{ // WHEN THE ITEM IN THE OLD AND NEW MATCH, PLACE THE
// CURRENT ROW NUMBER IN THE PROPER POSITION IN THE
// NEW ORDER ARRAY SO ROWS CAN BE MOVED ....
// MAKE SURE CURRENT ROW NUMBER IS NOT ALREADY IN THE
// NEW ORDER ARRAY
for (c=0; c<i; c++)
{
if ( oldIndex[c] == (j+1) )
{
bSort = 1;
}
}
if (bSort == 0)
{
oldIndex[i] = (j+1);
}
bSort = 0;
}
}
}
// ** SORTING COMPLETE, ADD NEW ROWS TO BASE OF TABLE ....
for (i=0; i<oldIndex.length; i++)
{
newRow = tableToSort.insertRow();
for (c=0; c<tableToSort.cols; c++)
{
newCell = newRow.insertCell();
newCell.innerHTML =
tableToSort.rows(oldIndex[i]).cells(c).innerHTML;
}
}
//MOVE NEW ROWS TO TOP OF TABLE ....
for (i=1; i<totalRows; i++)
{
tableToSort.moveRow((tableToSort.rows.length -1),1);
}
//DELETE THE OLD ROWS FROM THE BOTTOM OF THE TABLE ....
for (i=1; i<totalRows; i++)
{
tableToSort.deleteRow();
}
}
// End -->
-----------------------------
rigtig god fornøjelse i vinterferien...!

Cocktail,
...rystede posen og fandt noget i arkivet...!


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kommentar
Fra : Nyhedsbruger


Dato : 09-02-02 22:42

Jeg har svært ved at forstå hvad du vil med en bubblesort andet end at
få en langsom udførelsestid og bruge udviklingstid. Det er væsentlig
nemmere at bruge array.sort() metoden.

Med venlig hilsen

Kasper

lars09 wrote:

> Hvordan fremstiller man en såkaldt bubblesort i JavaScript !! Er det
> overhovedet muligt ??ine.dk' and Active = 1si gearing
>
> --
> Leveret af:
> http://www.kandu.dk/
> "Vejen til en hurtig løsning"


Godkendelse af svar
Fra : lars09


Dato : 29-05-02 22:16

Tak for svaret Carsten Nielsen.
                        

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste