Cita:  
					Iniciado por furoya  
  Un pequeño detalle en ese ejemplo.
  sort() ordena alfabeticamente, así que para números hay que hacerle un pequeño ajuste. 
Para entender mejor el problema, se pueden usar estos datos  
Código:
 var puntos = ['300|juan|ford|','500|pedro|toyota|','250|pablo|mercedes|','25|luis|audi|'];
  Y después probar el ordenamiento. 
Por supuesto, una forma fácil es justamente poner los números con estructura de texto.  
Código:
 var puntos = ['300|juan|ford|','500|pedro|toyota|','250|pablo|mercedes|','025|luis|audi|'];
  Pero de última no cuesta nada agregar una 
funcioncita para convertir a ordenador de números  
Ordenar números   Imperdonable error el mío @furoya, son los vicios de php (que tiene natsort()) 

Tampoco me rompí mucho la cabeza para solucionarlo, ya que alguien lo hizo por mí.
@milomondo
acá van las correciones   
Código HTML:
Ver original- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
- <html xmlns="http://www.w3.org/1999/xhtml"> 
- <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
- <script type="text/javascript"> 
- //<![CDATA[ 
- // Créditos de alphanum() para Brian Huisman http://my.opera.com/GreyWyvern/blog/show.dml/1671288 
- function alphanum(a, b) { 
-   function chunkify(t) { 
-     var tz = [], x = 0, y = -1, n = 0, i, j; 
-     while (i = (j = t.charAt(x++)).charCodeAt(0)) { 
-       var m = (i == 46 || (i >=48 && i <= 57)); 
-       if (m !== n) { 
-         tz[++y] = ""; 
-         n = m; 
-       } 
-       tz[y] += j; 
-     } 
-     return tz; 
-   } 
-   var aa = chunkify(a); 
-   var bb = chunkify(b); 
-   for (x = 0; aa[x] && bb[x]; x++) { 
-     if (aa[x] !== bb[x]) { 
-       var c = Number(aa[x]), d = Number(bb[x]); 
-       if (c == aa[x] && d == bb[x]) { 
-         return c - d; 
-       } else return (aa[x] > bb[x]) ? 1 : -1; 
-     } 
-   } 
-   return aa.length - bb.length; 
- } 
-   
- function agregar_datos(){ 
- var fila = ""; 
- var contenido_celda; 
- var tabla = document.getElementById('miTabla'); 
- var pos = tabla.rows.length; 
- var puntos = ['300|juan|ford|','500|pedro|toyota|','250|pablo|mercedes|','20|luis|audi|','1000|furoya|citröen','1|emprear|peugeot|','345|milomondo|ferrari|']; // esto es lo que hay que construir para obtener los datos 
- puntos.sort(alphanum); // ordenás 
- for (i=0; i<puntos.length; i++) { 
- contenido_celda =puntos[i].split('|'); 
- var filas = tabla.insertRow(pos); 
- var celda_0 = filas.insertCell(0); 
- var celda_1 = filas.insertCell(1); 
- var celda_2 = filas.insertCell(2); 
- celda_0.innerHTML=contenido_celda[1]; 
- celda_1.innerHTML=contenido_celda[2]; 
- celda_2.innerHTML=contenido_celda[0]; 
- } 
- } 
-   
- window.onload = agregar_datos; 
- //]]> 
- <table id="miTabla" border="1"> 
Demo: 
http://foros.emprear.com/javascript/natsort-js.html 
Saludos