JAVA学习心得——冒泡排序和插入排序

冒泡排序:

冒泡排序法的运行机制是通过循环遍历元素并调整相邻元素顺序来实现的一种简单排序方法。其实就是循环遍历相邻对比,那个数大那个数往后移,直到顺序是从小到大。如果降序排序,就相反过来。

先奉上一张冒泡排序的gif(图源网络,侵删)JAVA学习心得——冒泡排序和插入排序_第1张图片

下面以数组 {21, 99, 3, 1024, 16}升序排列为例演示冒泡排序的原理:

第一次冒泡:21 99 3 1024 16

                      21 3 99 1024 16

                      21 3  99 16 1024

第二次冒泡:21 3 99 16 1024

                      3 21 99 16 1024

                      3 21 16 99 1024

第三次冒泡:3 21 16 99 1024 

                      3 16 21 99 1024

代买如下:


public class Test {
    public static void main (String args[]){
        int [] array = {21, 99, 3, 1024, 16};
        for(int time = 1; timenext){
                    array[i] = next;
                    array[i+1] = now;
                }
            }
        }
        for(int arr:array){
            System.out.println(arr);
        }
    }
}

输出结果是:

JAVA学习心得——冒泡排序和插入排序_第2张图片

 

插入排序:

每循环一次都将一个待排序的元素所对应的数据按其顺序大小插入到前面已经排序的序列的合适位置,直到全部插入排序完为止,

依旧先奉上gif(图源网络,侵删):

JAVA学习心得——冒泡排序和插入排序_第3张图片

已知数组{1,2,4,5,3,3,5},通过插入排序变为升序:

例程奉上:

public class Test {
	public static void main(String[] args) {
		int [] secors = {1,2,4,5,3,3,5};
		for (int i = 1; i < secors.length; i++) {
			int data = secors[i];
			int j = 0;
			for (; j < i; j++) {
				if (secors[j] > data) {
					break;
				}
			}
			for (int k = i; k > j; k--) {
				secors[k] = secors[k - 1];
			}
			secors[j] = data;
		}
		for (int secor : secors) {
			System.out.println(secor);
		} 
	}
}

 

输出结果如下:

JAVA学习心得——冒泡排序和插入排序_第4张图片

注意:

插入排序如果有相同元素,那么相同元素的会怎么排序那?

例子奉上:1、3、22四个数如何升序排序?

由于13是有顺序的,所以红色的2先插入:1、2、3、2

然后紫色的2,再进行插入排序,找到比它大的3之前,插在3的前边。

所以结果是:1、22、3。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Java)