黑马程序员-Java基础知识2.(笔记部分总结-方法,排序和查询)
来源:互联网 发布:ubuntu 16.04 ide 编辑:程序博客网 时间:2024/06/05 15:00
方法:method(函数function = 功能) y=f(x)
1)方法的主要三要素:方法名、参数列表、返回值。
2)什么是方法:一个算法逻辑功能的封装,是一般完成一个业务功能,如:登录系统,创建联系人,简单说:方法是动作,是动词。
3)方法名:一般按照方法实现的功能定名,一般使用动词定义,一般使用小写字母开头,第二个单词开始,单词首字母大写。如:createContact() 。
4)参数列表:是方法的前提条件,是方法执行依据,是数据。如:
login(String id, String pwd) ,参数的传递看定义的类型及顺序,不看参数名。
5)方法返回值:功能执行的结果,方法必须定义返回值,并且方法中必须使用return语句返回数据;如果无返回值则定义为void,此时return语句可写可不写;返回结果只能有一个,若返回多个结果,要用数组返回(返回多个值)。
注意事项:递归调用:方法中调用了方法本身,用递归解决问题比较简练,只需考虑一层逻辑即可!但是需要有经验。一定要有结束条件
2.插入排序
将数组中每个元素与第一个元素比较,如果这个元素小于第一个元素,则交换这两个元素循环第1条规则,找出最小元素,放于第1个位置经过n-1轮比较完成排序。
for(int i = 1; i < arr.length;i++) {
int k = arr[i];// 取出待插入元素
int j;// 找到插入位置
for (j = i - 1; j >= 0&& k < arr[j]; j--) {
arr[j+ 1] = arr[j];// 移动元素
}
arr[j + 1] = k;// 插入元素
System.out.println(Arrays.toString(arr));
}
3.冒泡排序
比较相邻的元素,将小的放到前面。
for(inti = 0; i < arr.length - 1; i++) {
boolean isSwap = false;
for (int j = 0; j <arr.length - i - 1; j++) {
if(arr[j] > arr[j + 1]) {
intt = arr[j];
arr[j]= arr[j + 1];
arr[j+ 1] = t;
isSwap= true;
}
}
if (!isSwap){ break; }
System.out.println(Arrays.toString(arr));
}
4.冒泡排序:轻气泡上浮的方式
冒泡排序法可以使用大气泡沉底的方式,也可以使用轻气泡上浮的方式实现。如下为使用轻气泡上浮的方式实现冒泡排序算法。
for (int i = 0; i <arr.length - 1; i++) {
boolean isSwap = false;
for (int j = arr.length - 1; j > i;j--) {
if (arr[j] < arr[j - 1]) {
intt = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = t;
sSwap = true;
}
}
if (!isSwap){ break; }
System.out.println(Arrays.toString(arr));
}
5.
二分法查找
intlow= 0; inthigh= arr.length - 1; intmid = -1;
while(low<= high) {
mid = (low + high) / 2;
if (arr[mid] < value){ low = mid + 1; }
else if (arr[mid] >value){ high = mid - 1; }
else{ break;}
}
if (low <= high) { System.out.println("可以找到:index = " + mid + "。");
} else { System.out.println("无法找到!"); }
二分法思想是取中,比较 :
1)求有序序列arr的中间位置mid。 2)k为要查找的数字。
若arr[mid] == k,查找成功;
若arr[mid] > k,在前半段中继续进行二分查找;
若arr[mid] < k,则在后半段中继续进行二分查找。
假如有一组数为3、12、24、36、55、68、75、88要查给定的值k=24。可设三个变量low、mid、high分别指向数据的上界,中间和下界,mid=(low+high)/2.
1)开始令low=0(指向3),high=7(指向88),则mid=3(指向36)。因为k<mid,故应在前半段中查找。
2)令新的high=mid-1=2(指向24),而low=0(指向3)不变,则新的mid=1(指向12)。此时k>mid,故确定应在后半段中查找。
3)令新的low=mid+1=2(指向24),而high=2(指向24)不变,则新的mid=2,此时k=arr[mid],查找成功。
如果要查找的数不是数列中的数,例如k=25,当第四次判断时,k>mid[2],在后边半段查找,令low=mid+1,即low=3(指向36),high=2(指向24)出现low>high的情况,表示查找不成功。
- 黑马程序员-Java基础知识2.(笔记部分总结-方法,排序和查询)
- 黑马程序员-Java 基础知识1. (笔记部分总结)
- 黑马程序员-Java基础知识7(部分笔记总结-字符串的方法)
- 黑马程序员-Java基础知识5(部分笔记总结)
- 黑马程序员-Java基础知识3.(部分笔记总结string类)
- 黑马程序员-Java基础知识4,(部分笔记总结面向对象-类)
- 黑马程序员-Java基础知识6(部分笔记总结-List-map-set)
- 黑马程序员-Java基础知识8(部分笔记总结-IO流)
- 黑马程序员-Java基础知识9(部分笔记总结字符流)
- 黑马程序员-Java基础知识10(部分笔记总结try-catch)
- 黑马程序员-基础知识部分总结
- 黑马程序员-java笔记之equals和hascode方法总结。
- 黑马程序员-java笔记之equals和hascode方法总结。
- 黑马程序员--------Java基础知识总结(二)
- 黑马程序员—线程基础知识部分总结
- 黑马程序员------java基础知识总结
- 黑马程序员---java基础知识总结
- java基础知识总结---黑马程序员
- JSP上下文、表单提交
- ——从凯伦咖啡店巨额财产损失看社会公信力的缺失
- 数据结构基础-数据结构的特性
- 英特尔和微软同时力挺云创存储代理大会
- 安装Greenplum-perfmon-web监控软件
- 黑马程序员-Java基础知识2.(笔记部分总结-方法,排序和查询)
- js添加水印文字
- POJ 1068 Parencodings
- Hive mapjoin 与 Bucket mapjoin
- 技术人员如何参与产品设计讨论:激活那一潭死水
- ORA-03114: not connected to ORACLE
- /howto-configure-msmtp-to-work-with-gmail-on-linux
- Hibernate的10个常见面试问题及答案
- 研究ffmepg中有感(NDK 与 JNI 的关系)