2011年5月30日 星期一

5/30筆記

sample063 取得陣列的長度
1.陣列名稱.length
2.二維陣列時,指定索引值,可以得到該索引的長度(列數)
程式

/**
 * 
 */


/**
 * @author vicyuyu311
 *
 */
public class arraylength {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

//宣告一維陣列
int a[] = new int[3];
//取得一維陣列的長度
System.out.print("陣列a的長度是 ");
System.out.println(a.length);

//宣告二維陣列
int b[][] = new int[2][3];
//取得二維陣列的長度
System.out.print("陣列b的長度是(行數)是 ");
System.out.println(b.length);
System.out.print("陣列b的長度是(列數)是 ");
System.out.println(b[0].length);


}


}


sample064 設定陣列初始值
1.初始化一維陣列
   int a[ ] = {10, 20, 30}
2.初始化二維陣列
   int a[ ][ ] = {{10,20,30}, {40,50,60}}
   結果
   10 40
   20 50
   30 60
程式

/**
 * 
 */


/**
 * @author vicyuyu311
 *
 */
public class arrayinitial {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

//初始化一維陣列
int a[] = {10,20,30};
System.out.println("顯示一維陣列的元素");
for(int i=0;i<a.length;i++) {
System.out.print("陣列第 "+ (i+1) + " 項的值是 ");
System.out.println(a[i]);
}

//初始化二維陣列
int b[][] = {{10,20,30},{40,50,60}};
System.out.println("顯示二維陣列的元素");
for(int i=0;i<b.length;i++) {
for(int j=0;j<b[0].length;j++) {
    System.out.print("陣列第 "+ (i+1) + " 行第 ");
    System.out.println((j+1) +" 列的值是 "+b[i][j]);
    
    }
             }
}
}


sample065 在陣列內搜尋
1.使用for迴圈進行尋序搜尋
2.arraysearch方法,找到想要找的值,傳回該值存放索引值+1的數
   ,如果找不到,則傳回-1
程式

/**
 * 
 */


/**
 * @author vicyuyu311
 *
 */
public class arraysearch {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int a[] = {10,20,30,40,50};

//搜尋陣列中元素10的位置
System.out.print("10在陣列的第");
System.out.println(arraysearch(a,10) + "項");

//搜尋陣列中元素40的位置
System.out.print("40在陣列第");
System.out.println(arraysearch(a,40) + "項");
        
//搜尋陣列中元素60的位置
//因為找不到,故傳回-1
System.out.print("60在陣列的第");
System.out.println(arraysearch(a,60) + "項");
}


private static int arraysearch(int array[],int value) {
for (int i=0;i<array.length;i++) {
if (array[i] == value) {
  //傳回所在的位置
   return(i+1);
}
}

//找不到時,傳回-1
return(-1);
}
}




sample066 排序陣列的內容
1.氣泡排序(bubble sort):氣泡排序會不斷比較相鄰兩個
   元素的值,當大小關係相反時就互相交換,一直到沒有
   值需要交換為止.
程式

/**
 * 
 */


/**
 * @author vicyuyu311
 *
 */
//氣泡排序
public class bubblesort {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int a[] = {20,50,10,30,40};
System.out.println("排序前的陣列");
for (int i=0;i<a.length;i++) {
System.out.println(a[i]);
}

//將陣列遞增排序
sort(a);

System.out.println("排序後的陣列");
for (int i=0;i<a.length;i++) {
System.out.println(a[i]);

}



}
    public static void sort(int array[]) {
   
    int i = array.length;
    while (--i >= 0) {
     for (int j=0 ;j<i;j++) {
     if (array[j] > array[j+1]) {
      //交換元素值
     int tmp = array[j];
     array[j] = array[j+1];
     array[j+1] = tmp;
     }
     }
    }
    }
}


2.快速排列(quick sort):快速排列是先決定基準值,再以不斷分割資料
   達到排序陣列的效果,將其他元素與該基準值比較,分為較大和較小
   的兩個集合,並重複進行這些動作
程式

/**
 * 
 */


/**
 * @author vicyuyu311
 *
 */
//quick sort
public class quicksort {


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int a[] = {20,50,10,30,40};
System.out.println("排序前的陣列");
for (int i=0;i<a.length;i++) {
    System.out.println(a[i]);
    }

//將陣列遞增排序
sort(a, 0, a.length-1);

System.out.println("排序後的陣列");
for (int i=0;i<a.length;i++) {
 System.out.println(a[i]);
}
}

static void sort(int array[], int start, int end) {

int low = start;
int high = end;
if (start >= end) {
 return;
}
int mid = array[(start+end)/2];
do {
while (array[low] > mid) {
low++;
}
while (array[high] < mid) {
high--;
}
if (low <= high) {
int temp = array[low];
array[low++] = array[high];
array[high--] = temp;
}
}while (low <= high);
sort(array,start,high);
sort(array,low,end);
}
}














沒有留言:

張貼留言