2013年8月15日、遍歷|最值|選擇|冒泡排序|

昨天給自自己放了一天假、今天補回來|!恩!



class ArrayDemo4 
{


//遍歷數組的功能。
public static void printArray(int[] arr)
{
System.out.print("[");
for(int x=0; x<arr.length; x++)
{
if(x!=arr.length-1)
System.out.print(arr[x]+", ");
else
System.out.println(arr[x]+"]");
}
}
public static void main(String[] args) 
{
int[] arr = {34,19,11,109,3,56};


// int max = getMax_2(arr);
// System.out.println("max="+max);


printArray(arr);


// selectSort(arr);
// bubbleSort(arr);
// Arrays.sort(arr);
selectSort_2(arr);


printArray(arr);
}


public static void swap(int[] arr,int a,int b)
{
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}

------------------------------------------------------------------------------------
/*
冒泡排序。是java常見的排序、面試考試經常出這樣的題
*/

----------------------------------------------------------------------------------------
public static void bubbleSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
for(int y=0; y<arr.length-1-x; y++)
{
if(arr[y]>arr[y+1])
{
swap(arr,y,y+1);
/*
int temp  = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
*/
}
}
}
}


-------------------------------------------------------------------------------------

/*
選擇排序。
*/
public static void selectSort(int[] arr)
{
for(int x=0; x<arr.length-1; x++)//最後一位自己不比較
{
for(int y=x+1; y<arr.length; y++)//後一位(y)比前一位(X)多一位!
{
if(arr[x]>arr[y])
{
swap(arr,x,y);
/*
int temp  = arr[x];
arr[x] = arr[y];
arr[y] = temp;
*/
}
}
}
}


public static void selectSort_2(int[] arr)
{
for(int x=0; x<arr.length-1; x++)
{
int num = arr[x];
int index = x;
for(int y=x+1; y<arr.length; y++)
{
if(num>arr[y])
{
num = arr[y];
index = y;
}
}
if(index!=x)
swap(arr,x,index);
}
}



-------------------------------------------------------------------------------------------------------------
/*
獲取數組中的最大值。
思路:
1,需要進行比較。並定義變量記錄住每次比較後較大的值。
2,對數組中的元素進行遍歷取出,和變量中記錄的元素進行比較。
如果遍歷到的元素大於變量中記錄的元素,就用變量記錄住該大的值。 
3,遍歷結果,該變量記錄就是最大值。


定義一個功能來是實現。
明確一,結果。
是數組中的元素。int .
明確二,未知內容。
數組.
*/
public static int getMax(int[] arr)
{
//定義變量記錄較大的值。


int maxElement = arr[0];//                              初始化爲數組中的任意一個元素。
for(int x=1; x<arr.length; x++)
{
if(arr[x]>maxElement)
maxElement = arr[x];
}
return maxElement;
}
public static int getMax_2(int[] arr)
{
//定義變量記錄較大的值。-----------------------------------初始值的不同、
int maxIndex = 0;//初始化爲數組中任意一個角標。
for(int x=1; x<arr.length; x++)
{
if(arr[x]>arr[maxIndex])
maxIndex = x;
}
return arr[maxIndex];
}
}

發佈了33 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章