JAVA学习笔记之选择排序与冒泡排序
<1>:冒泡排序
基本概念:相邻的两个元素进行比较,小的放前面,大的放后面
由题见意,依次对相邻元素进行比较,小的放前面,大的放后面,这样当第一次对元素遍历完成就会最元素的最末尾得到这一系类元素的最大值。假设我们将这一系列元素存放在一个数组中,元素个数为n;当遍历数组n次后,我们便对这个数组数组完成了从小到大的排序。
实现这一方法的最基本思想是利用双重的for(int i; i < arr.length;i++){}循环。第一层循环用来控制遍历数组的次数,内层循环用来控制元素比较的次数,这样就可以在遍历完数组元素的时候完成对数组内部元素的排序;具体实现代码如下:
packagecom.edu_01;
public class MaoPaoSort {
public static void main(String[] args) {
int[] arr = {24,69,80,57,13};
for(int j = 0; j < arr.length;j++){
for(int i = 0; i < arr.length - 1 -j;i++){
if(arr[i] > arr[i+1]){
int temp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = temp;
}
}
}
printArr(arr);
}
public static void printArr(int[] arr){
System.out.print("[");
for(int i = 0; i < arr.length;i++){
// System.out.print(arr[i]+ " ");
if(i == arr.length - 1){
System.out.print(arr[i] + "]");
}else{
System.out.print(arr[i] + " ");
}
}
}
}
代码中后半段为打印数组的函数编写。
<2>选择排序
基本概念:从第一个元素开始,和后面的元素依次比较,将比较小的数字放在进行比较的元素位置上,每个位置均与后面元素进行比较,小的在前,大的在后。
由题意知,假设这一系列元素被装在一个数组中,从数组的第一个元素位置开始和后面元素依次进行比较,小的放在第一个元素位置上,大的放在比较元素位置上,这样当第一次遍历完这个数组元素时,便会使这个数组最小的元素位于第一个元素位置上,然后对第二个元素位置进行相同的操作,当所有的元素位置都遍历了之后,我们便对这个数组完成了从小到大的排序;具体实现代码如下:
packagecom.edu_03;
//使用选择排序对数组进行排序:int[] arr = { 24, 69, 80, 57, 13 };
public class ArraySortDemo2 {
public static void main(String[] args) {
System.out.println("这是选择排序");
int[] arr = { 24, 69, 80, 57, 13 };
for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
}
}
ArraySortDemo.printArr(arr);
}
}
同样,这里调用了自己编写的数组打印函数