java冒泡排序找最大的值_(13)數組操作:遍歷、輸出最大值、冒泡排序、選擇排序,java已有的排序方法、折半查找...
1.數組遍歷
/*
* 獲取數組中元素,遍歷
*/
int []y=new y[3];
for(int i=0;i
{
System.out.println("y["+i+"]="+y[i]+";");
}
2.打印數組名,就是打印數組地址,輸出格式[數組數據類型@數組首地址(哈希地址)
System.out.println(y);???? 輸出:[I@15db9742
3.輸出數組最大值
/*
* 需求:獲取數組中的最大值
*/
public int MaxArr(int[] a) {
int max=a[0];//存放最大值
for(int i=0;i
if(a[i]>max) {
max=a[i];
}
}
return max;
}
/*
*調用MaxArr()方法,不能用數組名.,而是要用類對象.
*/
int[] arr= {10,5,9,45,2,47};
Demo d=new Demo();
int temp=d.MaxArr(arr);
System.out.println("arr數組的最大值:"+temp);
4、冒泡排序
/*
* 對給定的數組排序
* 思路:冒泡排序
* 1.外層控制進行的次數
* 2.內層來求剩余數組中的最大值
* 3.對冒泡排序優化:當某次沒有數組交換時,則說明未排序數組有序,不用再比較
*/
public void busort(int a[]) {
int flag=0;
for(inti=a.length-1;i>0;i--) {
flag=0;//每次比較前,置為0
for(int j=0;j
if(a[j]>a[j+1]) {
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;//有比較,則置1
}
}
count++;
if(flag==0) {
break;//說明某次中沒有調換順序,則說明已有序
}
}
}
Demo d=new Demo();
調用: d.busort(arr); System.out.println("冒泡排序后數組數據從小到大輸出如下:"); d.prinArr(arr);
調用圖示:
5.選擇排序
/*
* 選擇排序:
* 思路:
* 1.每次讓未排序的第一個元素當最小值,對后面的依次比較,從而確定最小值,放在
* 這次未排序元素的第一位中。
* 2.其中涉及兩個元素位置交換問題
*
*/
public void Sort(int a[]) {
int min;
int temp;
for(int i=0;i
int index=i;
min=a[i];
for(int j=i;j
{
if(a[j]
min=a[j];
index=j;
}
}
temp=a[index];
a[index]=a[i];
a[i]=temp;
}
}
JAVA已經對數組排序功能實現集成了方法Arrays.sort(數組名);
即可實現對數組數據從小到大排序
六、數組折半查找
/*折半查找的前提是有序
* 折半查找數組中關鍵字,並返回數組下標
*
*/
public int midSelect(int a[],int key) {
int low,high,mid;
low=0;
high=a.length-1;
mid=(low+high)/2;
while(a[mid]!=key&&low<=high)//low>high則是不存在該值的情況 。若有該數,則a[mid]=key
{
if(a[mid]>key) //在mid左面比較
{
high=mid-1;
}
else if(a[mid]
{
low=mid+1;
}
mid=(low+high)/2;//下一次判斷是否夠該數做準備
}
low可以作為向有序數組插入數據的位置(畫圖理解)
//返回下標或者-1
if(a[mid]==key) {
return mid;}
else
return -1;
總結
以上是生活随笔為你收集整理的java冒泡排序找最大的值_(13)數組操作:遍歷、輸出最大值、冒泡排序、選擇排序,java已有的排序方法、折半查找...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java switch 值_Java s
- 下一篇: 水滴石穿C语言之static辨析