T086ѧϰ�� | վ��ѧԺ | �����ĵ� | ���� | Ъ���� | IP��ַ��ѯ | �������� | ���ջ��� | �����ֵ� | ���ù��� | ������Ϣ��ѯ

javascript �ļ������򷽷�

�� ��Դ����ɫ�������ߣ�panliu888 ����ʱ�䣺2004-12-08 | ���壺�� �� С��
[����]��ν���򣬾���Ҫ�����ļ��еļ�¼��ʹ֮���ؼ��ֵ���(���ݼ�)����������������ȷ�ж������£��������룺n����¼R1��R2������Rn������Ӧ�Ĺؼ��ֱַ�ΪK1��K2������Kn������������Ril��Ri2������Rin��ʹ��Ki1��Ki2��...

��ν���򣬾���Ҫ�����ļ��еļ�¼��ʹ֮���ؼ��ֵ���(���ݼ�)����������������ȷ�ж������£�
�������룺n����¼R1��R2������Rn������Ӧ�Ĺؼ��ֱַ�ΪK1��K2������Kn��
����������Ril��Ri2������Rin��ʹ��Ki1��Ki2�ܡ���Kin��(��Ki1��Ki2�ݡ���Kin)��

    ������Ǽ򵥽��ܼ������򷽷���ֱ�Ӳ���������ϣ��������ð�����򡢿���������ֱ��ѡ���������������ἰ�Ĵ�����IE6�²���ͨ����

ֱ�Ӳ�����������˼��
    �����������ļ�¼����������R[1..n]�С���ʼʱ��R[1]�Գ�1����������������ΪR[2..n]����i=2��ֱ��i=nΪֹ�����ν�R[i]���뵱ǰ��������R[1..i-1]�У����ɺ�n����¼����������

    �㷨����
 function InsertSort(arr) { //��������->ֱ�Ӳ��뷨����
  var st = new Date();
  var temp, j;
  for(var i=1; i<arr.length; i++) {
   if((arr[i]) < (arr[i-1])) {
    temp = arr[i];
    j = i-1;
    do {
     arr[j+1] = arr[j];
     j--;
    }
    while (j>-1 && (temp) < (arr[j]));
    arr[j+1] = temp;
   }//endif
  }
  status = (new Date() - st) + ' ms';
  return arr;
 }

ϣ����������˼��
��  ��ȡһ��С��n������d1��Ϊ��һ�����������ļ���ȫ����¼�ֳ�d1���顣���о���Ϊdl�ı����ļ�¼����ͬһ�����С����ڸ����ڽ���ֱ�Ӳ���������Ȼ����ȡ�ڶ�������d2<d1�ظ������ķ�����������ֱ����ȡ������dt=1(dt<dt-l<��<d2<d1)�������м�¼����ͬһ���н���ֱ�Ӳ�������Ϊֹ��
  ���÷���ʵ������һ�ַ������뷽����

    �㷨����

 function ShellSort(arr) { //��������->ϣ������
  var st = new Date();
  var increment = arr.length;
  do {
   increment = (increment/3|0) + 1;
   arr = ShellPass(arr, increment);
  }
  while (increment > 1)

  status = (new Date() - st) + ' ms';
  return arr;
 }
 function ShellPass(arr, d) { //ϣ�������ֶ�ִ�к���
  var temp, j;
  for(var i=d; i<arr.length; i++) {
   if((arr[i]) < (arr[i-d])) {
    temp = arr[i]; j = i-d;
    do {
     arr[j+d] = arr[j];
     j = j-d;
    }
    while (j>-1 && (temp) < (arr[j]));
    arr[j+d] = temp;
   }//endif
  }
  return arr;
 }

ð����������˼��
    ���������ļ�¼����R[1..n]��ֱ���У�ÿ����¼R[i]����������ΪR[i].key�����ݡ����������ݲ�����������֮�µ�ԭ�򣬴�������ɨ������R����ɨ�赽Υ����ԭ���������ݣ���ʹ������"Ʈ��"�����˷������У�ֱ�������κ��������ݶ����������ϣ���������Ϊֹ��

    �㷨����
 function BubbleSort(arr) { //��������->ð������
  var st = new Date();
  var temp;
  var exchange;
  for(var i=0; i<arr.length; i++) {
   exchange = false;
   for(var j=arr.length-2; j>=i; j--) {
    if((arr[j+1]) < (arr[j])) {
     temp = arr[j+1];
     arr[j+1] = arr[j];
     arr[j] = temp;
     exchange = true;
    }
   }
   if(!exchange) break;
  }
  status = (new Date() - st) + ' ms';
  return arr;
 }

������������˼��
    ��ԭ�����ֽ�Ϊ���ɸ���ģ��С���ṹ��ԭ�������Ƶ������⡣�ݹ��ؽ���Щ�����⣬Ȼ������Щ�������Ľ�����Ϊԭ�����Ľ⡣
    ��R[low..high]����ѡһ����¼��Ϊ��׼(Pivot)���Դ˻�׼����ǰ����������Ϊ������������С��������R[low..pivotpos-1)��R[pivotpos+1..high]����ʹ���������������м�¼�Ĺؼ��־�С�ڵ��ڻ�׼��¼(������Ϊpivot)�Ĺؼ���pivot.key���ұߵ������������м�¼�Ĺؼ��־����ڵ���pivot.key������׼��¼pivot��λ����ȷ��λ��(pivotpos)�ϣ��������μӺ�����������

    �㷨����
 function QuickSort(arr) { //��������->��������
  if (arguments.length>1) {
   var low = arguments[1];
   var high = arguments[2];
  } else {
   var low = 0;
   var high = arr.length-1;
  }
  if(low < high){
   // function Partition
   var i = low;
   var j = high;
   var pivot = arr[i];
   while(i<j) {
    while(i<j && arr[j]>=pivot)
     j--;
    if(i<j)
     arr[i++] = arr[j];
    while(i<j && arr[i]<=pivot)
     i++;
    if(i<j)
     arr[j--] = arr[i];
   }//endwhile
   arr[i] = pivot;
   // end function
   var pivotpos = i; //Partition(arr��low��high);
   QuickSort(arr, low, pivotpos-1);
   QuickSort(arr, pivotpos+1, high);
  } else
   return;
   return arr;
 }

ֱ��ѡ����������˼��
  ��n����¼���ļ���ֱ��ѡ�������ɾ���n-1��ֱ��ѡ�������õ�����������
 �ٳ�ʼ״̬��������ΪR[1..n]��������Ϊ�ա�
 �ڵ�1������
    ��������R[1..n]��ѡ���ؼ�����С�ļ�¼R[k]���������������ĵ�1����¼R[1]������ʹR[1..1]��R[2..n]�ֱ���Ϊ��¼��������1�������������ͼ�¼��������1��������������
��������
 �۵�i������
������i��������ʼʱ����ǰ���������������ֱ�ΪR[1..i-1]��R[i..n](1��i��n-1)�����������ӵ�ǰ��������ѡ���ؼ�����С�ļ�¼R[k]���������������ĵ�1����¼R[i]������ʹR[1..i]��R[i+1..n]�ֱ���Ϊ��¼��������1�������������ͼ�¼��������1��������������
    ������n����¼���ļ���ֱ��ѡ�������ɾ���n-1��ֱ��ѡ�������õ�����������

    �㷨����
 function SelectSort(arr) { //ѡ������->ֱ��ѡ������
  var st = new Date();
  var temp;
  for(var i=0; i<arr.length; i++) {
   var k = i;
   for(var j=i+1; j<arr.length; j++) {
    if((arr[j]) < (arr[k]))
     k = j;
   }
   if (k != i){
    temp = arr[i];
    arr[i] = arr[k];
    arr[k] = temp;
   }
  }
  status = (new Date() - st) + ' ms';
  return arr;
 }

  • ת����ע����Դ��ITѧϰ�� ��ַ��http://www.t086.com/ �����������Ƽ�������
  • �ر������� ��վ�������ر�������ֹת�ص�ר�������������¿�������ת�أ���������ע��������ԭʼ���ߡ����°�Ȩ������ԭʼ�������С����ڱ���վת�����µĸ��˺���վ�����DZ�ʾ������л�⡣������վת�ص������а�Ȩ��������ϵ���ǣ����ǻᾡ�����Ը�����
������ѯ Health Check Gulangyu
© 2017 T086ѧϰ�� - T086.com(ԭitlearner.com)
RunTime:9.00ms QueryTime:7