2015年9月17日

Radix Sort 基數排序法

#include "iostream"

void radix(int data[],int n);
int main()
{
    int number=9;
    int data[]={5,6,4,8,2,3,7,9,1};
    int i;

    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }
    printf("\n");

    radix(data,number);

    printf("\n");
    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }

    printf("\n");
    system("PAUSE");
    return 0;
}

void radix(int data[],int n){
  int k,i,j,z;
  int m;
  for (z=1;z<=100;z=z*10){
     int temp[10][100]={0};
     for (i=0;i<n;i++){
       m=data[i]/z%10;
       temp[m][i]=data[i];
     }
     k=0;
     for (i=0;i<10;i++){
         for (j=0;j<n;j++){
             if (temp[i][j]!=0){
               data[k]=temp[i][j];
               k++;
             }
         }
     }
  }
}

Merge Sort 合併排序法

#include "iostream"

void mergesort(int a[],int left,int right);
void merge(int a[],int left,int mid,int right);
int main()
{
    int number=9;
    int data[]={5,6,4,8,2,3,7,9,1};
    int i;

    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }
    printf("\n");

    mergesort(data,0,number-1);

    printf("\n");
    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }

    printf("\n");
    system("PAUSE");
    return 0;
}

void mergesort(int data[],int left,int right){
  int mid;
  if (right>left){
      mid=(right+left)/2;
      mergesort(data,left,mid);
      mergesort(data,mid+1,right);
      merge(data,left,mid,right);
  }
}

void merge(int data[],int left,int mid,int right){
  int rux[right-left+1];
  int i=left;
  int j=mid+1;
  int k;
  for (k=0;k<right-left+1;k++){
    if (i==mid+1){
       rux[k]=data[j];
       j++;
    }else if (j==right+1){
       rux[k]=data[i];
       i++;
    }else{
       rux[k]= data[i]<data[j] ? data[i++]:data[j++];
    }
  }
  for (k=0,j=left;j<right+1;j++,k++)
  data[j]=rux[k];
}

Shell Sort 謝儞排序法

#include "iostream"

void shellsort(int data[],int n);
int main()
{
    int number=9;
    int data[]={5,6,4,8,2,3,7,9,1};
    int i;

    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }
    printf("\n");

    shellsort(data,number);

    printf("\n");
    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }

    printf("\n");
    system("PAUSE");
    return 0;
}

void shellsort(int data[],int n){
  int jup;
  jup=n/2;
  int i,j;
  int temp;
  while(jup!=0){
    for (i=jup;i<n;i++){
    temp=data[i];
    j=i-jup;
      while (temp<data[j] && j>=0){
      data[j+jup]=data[j];
      j=j-jup;
      }
      data[j+jup]=temp;
      j=j-jup;
    }
    jup=jup/2;
  }
}

Heap Sort 堆疊排序法

#include "iostream"

void heapsort(int data[],int number);
void heap(int data[],int index,int n);
int main()
{
    int number=9;
    int data[]={5,6,4,8,2,3,7,9,1};
    int i;

    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }
    printf("\n");

    heapsort(data,number);

    printf("\n");
    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }

    printf("\n");
    system("PAUSE");
    return 0;
}

void heapsort(int data[],int n){
    int i;
    for (i=(n-2)/2;i>=0;i--)
    {
        heap(data,i,n);
    }
 
    for (i=n-1;i>=0;i--)
    {
        int temp=data[0];
        data[0]=data[i];
        data[i]=temp;
        heap(data,0,i);
    }
}
void heap(int data[],int index,int n){
     int left=index*2+1;
     int right=index*2+2;
     int largest=index;
     int i;
   
     if ((left<n)&&(data[left]>data[largest]))
     {
     largest=left;
     }
     if ((right<n)&&(data[right]>data[largest]))
     {
     largest=right;
     }
   
     if (index!=largest)
     {
       int temp=data[index];
       data[index]=data[largest];
       data[largest]=temp;
       heap(data,largest,n);
     }
   
}

Quick Sort 快速排序法

#include "iostream"

void quicksort(int data[],int left,int right);
int main()
{
    int number=9;
    int data[]={5,6,4,8,2,3,7,9,1};
    int i;

    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }
    printf("\n");

    quicksort(data,0,number-1);

    printf("\n");
    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }

    printf("\n");
    system("PAUSE");
    return 0;
}

void quicksort(int data[],int left,int right){
  int i=left+1;
  int j=right;
  int splitting=data[left];
  int temp;
  if (left<right){
      do{
        while(i<right && data[i]<splitting)i++;
        while(j>left && data[j]>splitting)j--;
        if (i<j){
          temp=data[i];
          data[i]=data[j];
          data[j]=temp;
        }
      }while(i<j);
     
      temp=data[left];
      data[left]=data[j];
      data[j]=temp;
      quicksort(data,left,j-1);
      quicksort(data,j+1,right);
  }
}

Selection Sort 選擇排序法

#include "iostream"

void selectionsort(int data[],int n);
void quicksort(int data[],int left,int right);
void heapsort(int data[],int number);
void heap(int data[],int index,int n);
void shellsort(int data[],int n);
void mergesort(int a[],int left,int right);
void merge(int a[],int left,int mid,int right);
void radix(int data[],int n);
int main()
{
    int number=9;
    int data[]={5,6,4,8,2,3,7,9,1};
    int i;

    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }
    printf("\n");

    selectionsort(data,number);

    printf("\n");
    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }

    printf("\n");
    system("PAUSE");
    return 0;
}

void selectionsort(int data[],int n){
     int i,j;
     int temp;
     for (i=0;i<n;i++){
         temp=i;
         for (j=i+1;j<n;j++){
             if (data[temp]>data[j]){
                temp=j;
             }
         }
         int flag=data[temp];
         data[temp]=data[i];
         data[i]=flag;
     }
}

Insertion Sort 插入排序法

#include "iostream"

void insertionsort(int data[],int n);
int main()
{
    int number=9;
    int data[]={5,6,4,8,2,3,7,9,1};
    int i;

    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }
    printf("\n");

    insertionsort(data,number);

    printf("\n");
    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }

    printf("\n");
    system("PAUSE");
    return 0;
}

void insertionsort(int data[],int n){
     int i,j;
     for (i=1;i<n;i++){
         int temp=data[i];
         for (j=i;j>0;j--){
             if (temp<data[j-1]){
                data[j]=data[j-1];
                data[j-1]=temp;
               
                 for (int k=0;k<n;k++){
                 printf("%d",data[k]);
                 }
                 printf("\n");
               
             }
         }
     }
}

Bubble Sort 泡泡排序法

#include "iostream"

void bubblesort(int data[],int n);
int main()
{
    int number=9;
    int data[]={5,6,4,8,2,3,7,9,1};
    int i;

    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }
    printf("\n");

    bubblesort(data,number);

    printf("\n");
    for (i=0;i<number;i++){
        printf("%d",data[i]);
    }

    printf("\n");
    system("PAUSE");
    return 0;
}
void bubblesort(int data[],int n){
     int i,j;
     for (i=0;i<n;i++){
         for (j=i;j<n;j++){
             if (data[j]<data[i]){
                int temp=data[j];
                data[j]=data[i];
                data[i]=temp;
             }
         }
     }
}

2015年7月21日

Block Puzzle for Android

Block Puzzle for Android

Google Play Download
https://play.google.com/store/apps/details?id=com.jackyandjustin.blockpuzzle&hl=zh-TW

Block puzzle game.
Drag block was filled with different shapes to the right place to form a single larger shape.
Try to complete fill board.
100 Level for game.
Time limit 60 seconds


.

Toast 訊息提示

Toast 訊息提示



Toast.makeText(MainActivity.this, "提示內容",Toast.LENGTH_SHORT ).show();

提示框在顯示之後過了幾秒就會消失,是一種短暫的訊息,可以做為輸入狀況的提示。

AlertDialog 對話框

AlertDialog 對話框

import android.app.AlertDialog;

private void openDialog() {
new AlertDialog.Builder(this)
       .setTitle("Google Play Service")
       .setMessage("Not Connect !")
.setPositiveButton("Yes"
, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 按下按鈕後執行的動作,無編輯則退出Dialog
}
}).show();
}

2015年3月6日

Android 警告信息: tag appears after tag

AndroidManifest.xls

警告信息:<uses-permission> tag appears after <application> tag
解决方法:把<uses-permission> 放到 <application> 前面

2015年2月11日

jbox2D 物理引擎

jbox2D 物理引擎

jbox2D下載點

jbox2D for Android 下載點 檔案名稱>JBox2d4Android_2.1.2.jar



A)Box2D由世界,物體等組成,Box2D能自動計算物體的位置,然後我們還需要在Android中繪製出来;
B)Box2D世界中的單位都是標準單位,秒、米、千克 etc. 需要按照比例缩放,不然速度很慢(代碼中有轉換);
C)Box2D每禎的位移是2m/frame,不能超過這個速度,所以要進行縮放,即可放大速度;
D)注意座標系的零點是在左上角,同時角度是以弧度制的


2015年2月4日

Android Unable to execute dex: GC overhead limit exceeded GC overhead limit exceeded

Android 問題,出現Unable to execute dex: GC overhead limit exceeded GC overhead limit exceeded

遭遇eclipse模擬器無法開啟,解決辦法>變更eclipse.ini,修改紅色文字

-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
512M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms512m
-Xmx1024m