黑马程序员_JavaSE基础05 之 数组的操作 求最值 排序 折半查找
2012-09-02 18:22
274 查看
----------------------android培训、java培训、期待与您交流!---------------------
JavaSE_05笔记
Java语言基础之数组的操作求最值排序折半查找
1、关于数组定义两种方式
①只指定存储空间大小,不明确空间的具体数据。
②明确空间的具体数据。
2、关于数组的操作
对数组基本操作是存和取,核心思想是对角标的操作。
演化成遍历、最值、排序、查找。
3、对数组求最值得操作
两种方式使用max记录最大值;或者maxIndex记录。
//方式二用角标获取数组最大值的方法
publicstaticintGetMax2(int[]arr)
{
//定义变量记录最大值的角标
intmaxIndex=0;
for(inti=1;i<arr.length;i++)
{
if(arr[i]>arr[maxIndex])
{
maxIndex=i;
}
}
returnarr[maxIndex];
}
4、使用选择排序实现从小到大排序
思路:外循环控制总比较次数,内循环控制一个元素的比较次数,内部循环实现是让第i个元素和其身后的每个元素进行比较,若arr[i]>arr[i+1..],那么就换位,总之是让arr[i]记录的是最小值。
//注意的是返回值不用再返回数组了,因为你是对堆内存的操作,不随函数的结束而结束,说白了原数组随着你的鼓捣而发生了改变。
//[34,19,11,3,56]
publicstaticvoidselectSort(int[]arr)
{
//外层控制总循环次数
for(inti=0;i<arr.length-1;i++)
{
//内存控制当前元素的循环
for(intj=i+1;j<arr.length;j++)//从小到大
{
//因为从小到大,若第i位大于第i+1位,那么换
if(arr[i]>arr[j])
{
inttemp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
5、使用冒泡排序实现从小到大排序
思路:首先外层进行比较次数的循环,内层控制一个元素比较的循环,内循环借用第三方变量实现相邻两个元素的比较,反正是让最后的值最大,对于从小到大排序前提是是max[i]>max[i+1],才能换位。
//[34,19,11,3,56]
publicstaticvoidbubbleSort(int[]arr)
{
for(inti=0;i<arr.length-1;i++)
{
for(intj=0;j<arr.length-i-1;j++)
{
//因为对于从小到大,若第j位大于第j+1位,就换
if(arr[j]>arr[j+1])
{
inttemp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
6、排序总结:对于从小到大排序。
选择排序的核心思想是:拿一个元素和身后所有的值比较,反正我要保证这个元素值最小。我要保证第1位最小。
冒泡排序的核心思想是:拿相邻两个元素比较,反正我要保证最后一个元素值最大。我要保证最后一位最大。
7、折半查找:对于有顺序的数据
//折半查找
publicstaticinthalfSearch(intarr[],intkey)
{
intmin=0;
intmax=arr.length;
intmid=(min+max)/2;
while(min<=max)
{
if(arr[mid]>key)
{
min=mid+1;
}
elseif(arr[mid]<key)
{
max=mid-1;
}
else
returnmid;
}
return-1;
}
return-1;
}
2012/9/02ByMary_k
相关文章推荐
- 黑马程序员_JavaSE基础06 之 数组的操作 求最值 排序 折半查找
- 黑马程序员_C语言基础_数组之冒泡排序、快速选择排序、折半查找
- 黑马程序员 Java基础<一> 数组及排序
- 黑马程序员——JavaSE之数组排序的小总结一
- 黑马程序员_JavaSE基础知识总结三:方法和数组
- 黑马程序员-----JAVA基础--数组排序的两种算法
- 黑马程序员——javase基础--数组
- 黑马程序员_JavaSE基础04 之 循环嵌套 函数重载 数组 内存空间划分
- (13)数组操作:遍历、输出最大值、冒泡排序、选择排序,java已有的排序方法、折半查找
- JavaSE基础数组排序
- 黑马程序员_Java基础(数据类型、Java操作符、数组排序方法)
- 黑马程序员 java基础 函数 数组 查找与排序总结
- 黑马程序员——Java基础——数组操作应用
- 黑马程序员_Java基础_04数组main函数args详解、数组排序、二分查找实例
- 黑马程序员_数组及其排序查找操作
- 黑马程序员——c语言基础:冒泡排序、选择排序和折半查找
- 黑马程序员--Java基础学习笔记【数组操作、基本数据类型包装类】
- 黑马程序员_java基础(数组的操作)
- 黑马程序员:Java数组简介与数组的应用:选择排序、冒泡排序、折半查找
- Java基础第一阶段——05_Java语言基础_数组操作&排序&查找