Rumah > hujung hadapan web > tutorial js > js melaksanakan pengisihan buih tatasusunan dan kemahiran prinsip_javascript pengisihan pantas

js melaksanakan pengisihan buih tatasusunan dan kemahiran prinsip_javascript pengisihan pantas

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2016-05-16 15:11:40
asal
1650 orang telah melayarinya

Artikel ini berkongsi prinsip pelaksanaan isihan buih tatasusunan js dan isihan pantas untuk rujukan anda. Kandungan khusus adalah seperti berikut

1. Isih gelembung :

Ambil mana-mana digit dari tatasusunan dan bandingkan dengan digit seterusnya Jika anda ingin mengisih dari kecil ke besar, kemudian letakkan yang kecil di hadapan dan yang besar di belakang , dan kesan pengisihan boleh diperolehi dengan bertukar kedudukan berulang kali.

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循环。

Salin selepas log masuk

2. Isih pantas:

Ambil nilai dari tengah tatasusunan, kemudian bandingkan nilai ini dengan nilai dalam tatasusunan satu persatu ini, bandingkan lagi, dan ulangi.

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));
}
Salin selepas log masuk

Jika anda ingin mengetahui lebih lanjut tentang pengisihan javascript, sila klik "Pelaksanaan Kaedah Pengisihan Javascript" .

Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu kajian semua orang.

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan