目录
排序的介绍
排序的分类
1.内部排序
2.外部排序
冒泡排序
查找
排序的介绍:
排序是将多个数据,依指定顺序进行排列的过程。
排序的分类:
1、内部排序:
将指定需要处理的数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序发和插入排序法)。
2、外部排序:
数据量过大,全部无法加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)
冒泡排序:
从下标大的元素开始,如依次比较相邻元素,若发现逆序(大的在后面)则交换顺序。就像水里的气泡向上浮一样,故有此得名。
方法一:(这个方法效率低,因为已经定好位的数还是会用来比较)
public static void main(String[] args) {
int [ ] arr = {100,50,65,78,20,34,44};
int temp =0;
// 循环次数是数组长度减一
// 外层循环表示要找多少次最大的数
for(int j =0;j<arr.length-1;j++) {
// 内层循环表示前面大的数往后移的次数
for(int i = 0;i<arr.length-1;i++) {
if(arr[ i ]> arr [ i+1]) {
temp = arr [ i ];
arr [ i ] = arr [ i+1];
arr [ i+1] = temp;
}
}
}
for(int i = 0; i<arr.length;i++) {
System.out.print(arr [ i ]+"\t");
}
}
结果:20 34 44 50 65 78 100
方法二:每次循环后,已经定好位的不会在比较,提高效率。
public static void main(String[] args) {
int [ ] arr = {100,50,65,78,20,34,44};
int temp = 0;
for(int j =0;j<arr.length-1;j++) {
for(int i =0;i<arr.length-1-j;i++) {
if(arr[ i ]>arr [ i+1]) {
temp = arr[ i ];
arr [ i ] = arr [ i+1];
arr [ i+1] = temp;
}
}
}
for(int i =0;i<arr.length;i++) {
System.out.print(arr[ i ]+"\t");
}
}
结果:
20 34 44 50 65 78 100
查找:
顺序查找
public static void main(String[] args) {
String [ ] names = {"白眉鹰王","金毛王","紫衫王","青翼龙王"};
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入名字");
String findname = myScanner.next();
int index = -1;
for(int i =0;i<names.length;i++) {
// 字符串的比较用equals
// 这里用一个index来判断是否找到了名字,是一个经典的方法,用来标记或者判断
if(findname.equals(names[i])) {
System.out.println("恭喜你找到了名字"+"下标为"+i);
index = i;
break;
}
// }如果这里直接加else的话,会导致如果要找的内容在最后的话会提前退出,从而找不到。所以要等
// 循环完之后在开始寻找
// else {
// System.out.println("没有您要找得"+findname);
// }
}
// 写在循环的外面,如果找到了index会变化,未变化则说明没有找到
if(index ==-1) {
System.out.println("没有您要找得"+findname);
}
}