2014年4月23日 星期三

[演算法]淺談 排序 (cont.)

int main()
{
 int arr[] = {1,5,2,6,7,8,9,4,10,14,52,99,47,100,199,222222,11,23};
 int length = sizeof(arr)/sizeof(int);

 cout << "before selection sort:" << endl;
 for(int i=0; i < length; i++)
  cout << arr[i] << " ";
 cout << endl;
 insertionSort(arr, length);
 //selectionSort(arr, length);
 //bubbleSort(arr, length);
 //quickSort(arr, 0, length);
 cout << "after selection sort:" << endl;
 for(int i=0; i < length; i++)
  cout << arr[i] << " ";
 cout << endl;
 system("pause");
 return 0;
}
先處理swapfunction
void swap(int* a, int* b) {
 int temp = *a;
 *a = *b;
 *b = temp;
}

氣泡排序法(Bubble sort)
void bubbleSort(int* arr, int length)
{
  for(int i=0; i < length-1; i++) {
   for(int j=1; j < length; j++) {
    if(arr[j-1] > arr[j]) {
     swap( &arr[j-1], &arr[j] );
    } else
     continue;
   }
  }
}
插入排序法(Insertion sort)
void insertionSort(int* arr, int length)
{
 for(int i=1; i<length; i++) {
  int temp = arr[i], index = i;
  for(int j=i-1; j>=0 && arr[j] > temp; j--) {
   arr[j+1] = arr[j];
   index = j;
  }
  arr[index] = temp;
 }
}
選擇排序法(Selection sort)
void selectionSort(int* arr, int length)
{
 for(int i=0; i<length; i++) {
  int index = i, min=arr[i];
  for(int j=i+1; j<length; j++) {
   if(arr[j] < min) {
    index = j;
    min=arr[j];
   }
  }
  if(index != i)
   swap(&arr[i], &arr[index]);
 }
}
快速排序法(Quick sort)
void quickSort(int* arr, int left, int right)
{
 int lpt, rpt, pvt;
 if( left < right ) {
  lpt = left + 1;
  rpt = right;
  pvt = arr[left];
  while( lpt <= rpt ) {
   while( arr[lpt] < pvt )
    lpt++;
   while( arr[rpt] > pvt )
    rpt--;
   if( lpt < rpt )
    swap( &arr[lpt], &arr[rpt] );
  }
   swap( &arr[left], &arr[rpt] );
   for(int p=0; p<sizeof(arr)/sizeof(int); p++)
    printf("sorting:%d\n",arr[p]);
   printf("\n");
   quickSort( arr, left, rpt-1 );
   quickSort( arr, rpt+1, right);
 }
}

2014年4月20日 星期日

[PHP] Composer 建置


如何在mac上建好composer這個利器呢!?
首先mac上要先有Homebrew這套mac的套件管理工具
沒有的要先裝好Homebrew(其實也可以用curl來裝,官網上有作法)
brew -v
#如果出現 Homebrew 0.X.X就代表成功嚕!
接著就利用brew指令來裝好composer吧
brew update

brew tap homebrew/homebrew-php

brew tap homebrew/dupes

brew tap homebrew/versions

brew install php55-intl

brew install homebrew/php/composer  #把composer裝下去!!


run完後
composer -v

















Bingo!!Composer裝好嚕
可以看到list出一堆可用的指令
ex.
create-project  #之後建置Laravel project時用到

update          #管理package和更新專案所用package時用到

...等 都是以後常用的指令!

至於怎麼找package、在專案裡加入package和使用package
之後的文章應該會提到
或直接到網站上了解一下吧!