Heim >Web-Frontend >js-Tutorial >js implementiert Array-Blasensortierung und schnelle Sortierprinzipien_Javascript-Fähigkeiten

js implementiert Array-Blasensortierung und schnelle Sortierprinzipien_Javascript-Fähigkeiten

WBOY
WBOYOriginal
2016-05-16 15:11:401603Durchsuche

In diesem Artikel werden die Implementierungsprinzipien der js-Array-Bubble-Sortierung und der Schnellsortierung als Referenz erläutert. Der spezifische Inhalt lautet wie folgt:

1. Blasensortierung :

Nehmen Sie eine beliebige Ziffer aus dem Array und vergleichen Sie sie mit der nächsten Ziffer. Wenn Sie von klein nach groß sortieren möchten, platzieren Sie die kleine Ziffer ganz vorne und die große Ziffer ganz hinten , und der Sortiereffekt kann durch wiederholtes Vertauschen der Positionen erzielt werden.

var arr = [3,1,4,2,5,21,6,15,63];

function sortA(arr){
 for(var i=0;i<arr.length-1;i++){
 for(var j=i+1;j<arr.length;j++){
  //获取第一个值和后一个值比较
 var cur = arr[i];
 if(cur>arr[j]){
  // 因为需要交换值,所以会把后一个值替换,我们要先保存下来
 var index = arr[j];
  // 交换值
 arr[j] = cur;
 arr[i] = index;
 }
 }
 }
 return arr;
}
//因为一次循环只能交换一个最大的值,所以需要再套一层for循环。

2. Schnelle Sortierung:

Nehmen Sie einen Wert aus der Mitte des Arrays und vergleichen Sie diesen Wert nacheinander mit den Werten im Array. Wenn er größer ist, legen Sie ihn beiseite. Wenn er kleiner ist, legen Sie ihn beiseite und führen Sie ihn dann zusammen Vergleichen Sie diese erneut und wiederholen Sie den Vorgang.

var arr = [3,1,4,2,5,21,6,15,63];
function sortA(arr){
 // 如果只有一位,就没有必要比较
 if(arr.length<=1){
 return arr;
 }
 // 获取中间值的索引
 var len = Math.floor(arr.length/2);
 // 截取中间值
 var cur = arr.splice(len,1);
 // 小于中间值放这里面
 var left = [];
 // 大于的放着里面
 var right = [];
 for(var i=0;i<arr.length;i++){
 // 判断是否大于
 if(cur>arr[i]){
 left.push(arr[i]);
 }else{
 right.push(arr[i]);
 }
 }
 // 通过递归,上一轮比较好的数组合并,并且再次进行比较。
 return sortA(left).concat(cur,sortA(right));
}

Wenn Sie mehr über die Javascript-Sortierung erfahren möchten, klicken Sie bitte auf "Implementierung der Javascript-Sortiermethode" .

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn