一、冒泡排序
问题:用冒泡排序来进行排序
- 分析:什么是冒泡排序?
- 冒泡排序:
- 从第一个数开始,两个数两个数的进行两两比较,i与i+1比较,i+1与i+2比较…小的在前大的在后
- 每次可以确定一个最大值
- eg:对 24 69 80 57 13 用冒泡排序进行排序
- 第一次:24 69 57 13 80
- 第二次:24 57 13 69 80
- 第三次:24 13 57 69 80
- 第四次:13 24 57 69 80
代码实现如下:
public class bubbleSort {
public static void main(String [] args) {
//首先定义一个int型数组
int[] arr=new int[]{24, 69, 80, 57, 13};
//外层for循环确定的是排序次数
for ( int i=0 ; i < arr.length-1; i++) {
//内层for循环确定的是正在比较的两个数
for (int j = 0; j < arr.length-1-i; j++) {
if (arr[j]>arr[j+1]) {
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
//遍历数组,按照[ , , , , ]格式输出
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1) {
//当遍历到最后一个数据时直接输出
System.out.print(arr[i]);
}else {
System.out.print(arr[i]+",");
}
}
System.out.print("]");
}
}
二、选择排序
问题:用选择排序来进行数组排序
- 分析:什么是选择排序?
- 选择排序:
- 从第一个数i开始比较,与它后面的数i+1、i+2、i+3…进行比较,如果比它后面的数小就不用换位置
- 否则,就替换一下位置,接着用替换了i+1、i+2、i+3…与它原来位置后面的数进行比较,直到最后一个数,重复上面行为
- 选择排序每次排序都确定了一个最小值
- eg:对24 69 80 57 13进行选择排序
- 第一次:13 69 80 57 24
- 第二次:13 24 80 69 57
- 第三次:13 24 57 80 69
- 第四次: 13 24 57 69 80
代码实现如下:
public class selectSort {
public static void main(String[] args) {
//首先定义一个int型数组
int[] arr= new int[] {24, 69, 80, 57, 13};
//外层for循环用来表示是第几个数第几层在进行排序
for (int i = 0; i < arr.length-1; i++) {
//内层for循坏用来表示某个数与它后面的数进行比较
for (int j = i+1; j < arr.length; j++) {
if (arr[i]>arr[j]) {
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
//遍历数组
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1) {
//当遍历到最后一个数据时直接输出
System.out.print(arr[i]);
}else {
System.out.print(arr[i]+", ");
}
}
System.out.print("]");
}
}
三、总结
今天重新翻了一下之前看过的JAVA视频,然后就看到了老师讲的这两个排序,当时看的时候只写在了笔记本上,就觉得还要总结一下,数据结构还是很重要的,等以后在看到其他的还是要接着总结呀!