目录
一、冒泡排序
冒泡排序(Bubble Sorting)
例子:24,69,80,57,13 使用冒泡排序法将其排成一个从小到大的有序数列
第一步:思路
冒泡排序特点总结:
1.一共有5个元素
2.一共进行了4轮排序,可以看成是外层循环
3.每一轮排序确定一个数据的位置,第一轮确定最大数,第二轮排序确定第二大的数,以此类推
4.当进行比较时,如果前面的数大于后面的数,就交换(从小到大)
5.每一轮的比较次数在逐渐减少 4->3->2->1
第二步:代码实现
第一轮排序代码
public class BubbleSort{
//编写一个main方法
public static void main(String[] args){
//化繁为简,先死后活
int[] arr = {24,69,80,57,13};
//第一轮有四次比较
int temp = 0;
for(int j = 0; j < 4; j++){
//如果前面的数大于后面的数,交换两者位置
if(arr[j] > arr[j+1]){
temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
System.out.println("第一轮排序后====");//遍历数组
for(int j = 0; j < arr.length; j++){
System.out.print(arr[j] + "\t");
}
}
}
第二轮代码和第一轮一样,只需更改循环次数即可
进一步精简:4轮排序可以作为一个外循环
内部循环只有每一轮循环的次数不同
i=0时,循环4次
i=1时,循环3次
i=2时,循环2次
i=3时,循环1次
public class BubbleSort{
//编写一个main方法
public static void main(String[] args){
//下面我们举一个具体的案例来说明冒泡法。
//我们将五个无序:24,69,80,57,13 使用冒泡排序法将其排成一个从小到大的有序数列
//依次比较,一共四轮比较
//第一轮进行四次,第二轮3次
int arr[] = {24, 69, 80, 57, 13};
for(int j = 0; j < arr.length - 1; j++){
int temp = 0;
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;
}
}
System.out.println("\n=======第" + (j + 1) + "轮排序的结果为====");
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + "\t");
}
}
}
}
二、查找
代码
/*
1) 有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:
从键盘中任意输入一个名称,判断数列中是否包含此名称
【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值
*/
import java.util.Scanner;
public class SeqSearch{
public static void main(String[] args){
String names[] = {"白眉鹰王", "金毛狮王", "紫衫龙王", "青翼蝠王"};
System.out.println("请输入要查找的名字");
Scanner myScanner = new Scanner(System.in);
String findName = myScanner.next();
int index = -1;//经典编程思想
for(int i = 0; i < names.length; i++){
if(names[i].equals(findName)){//字符串的比较
System.out.println("恭喜你,已经找到" + findName);
index = i;
System.out.println("下标为" + index);