快排和二分的複習

來源:互聯網
上載者:User

過了很長時間了,怕自己忘了,重寫一下快排和二分。

    

void fastSort(int * arr,int n,int m){int tmp;  if(m-n<1) return;//退出遞迴的條件  int partition=arr[m];//分割元素  int i=n-1;//double pointer  //int j=n; for(int j=n;j<=m-1;++j) { if(arr[j]<partition)  {   i++;   tmp=arr[j];   arr[j]=arr[i];   arr[i]=tmp;  }  }  i++;  tmp=arr[m];  arr[m]=arr[i];  arr[i]=tmp;     fastSort(arr,n,i-1);fastSort(arr,i+1,m);}

空間複雜度O(1),時間複雜度O(nlgn),穩定的排序。

 

 

二分尋找的代碼:上次用遞迴,這次直接迴圈寫的

int BinarySearch(int * arr,int n,int value){int i;int left=0;//儲存資料的左右位置int right=n-1;    while(true)     { if(right-left==0) { if( value==arr[right])  return right; else return -1;  }       i=(left+right)/2;   if(arr[i]==value)   return i;   else if(arr[i]>value)    {      right=i-1;  //right=n-1;            }   else   {        left=i+1;      }        }  return -1;}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.