java小算法—常见的排序算法(冒泡排序,选择排序,插入排序)

Posted CSBase

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java小算法—常见的排序算法(冒泡排序,选择排序,插入排序)相关的知识,希望对你有一定的参考价值。

1.冒泡排序

比较相邻的元素。如果第一个比第二个大,就交换他们两个。  
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。  
针对所有的元素重复以上的步骤,除了最后一个。  
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 

例如:数字长度为7,下标0-6,第一轮比较0-5 第二轮i+1-6

int m[] = new int[]{12, 0, 23, 111, 0, 24, 123, 89, 3, 4, 21};

        int n = m.length;

        for (int i = 0; i < n - 1; i++) {

            for (int j = i + 1; j < n; j++) {

                int temp;

                if (m[i] > m[j]) {

                    temp = m[i];

                    m[i] = m[j];

                    m[j] = temp;

                }

            }

        }

2.选择排序(和冒泡差不多,也是两轮n-1,n 只不过冒泡排序比的是大小直接排序,选择排序先比较下标再交换数据)

将数组的第一个数据作为最大或者最小的值,然后通过比较循环,输出有序的数组。

int m[] = new int[]{12, 0, 23, 111, 0, 24, 123, 89, 3, 4, 21};

        int n = m.length;

        for (int i = 0; i < n - 1; i++) {

            int min = i;

            for (int j = i + 1; j < n; j++) {

                if (m[min] > m[j]) {

                    min = j;

                }

            }

            if (min != i) {

                int temp;

                temp = m[min];

                m[min] = m[i];

                m[i] = temp;

            }

        }

3.插入排序

选择一个数组中的数据,通过不断的插入比较最后进行排序

        int m[] = new int[]{12, 0, 23, 111, 0, 24, 123, 89, 3, 4, 21};

        int n = m.length;

        for (int i = 1; i < n; i++) {

            for (int j = i; j > 0; j--) {

                if (m[j - 1] > m[j]) {

                    int temp;

                    temp = m[j - 1];

                    m[j - 1] = m[j];

                    m[j] = temp;

                }

            }

        }




以上是关于java小算法—常见的排序算法(冒泡排序,选择排序,插入排序)的主要内容,如果未能解决你的问题,请参考以下文章

java常见排序算法--选择排序冒泡排序插入排序分析与比较

Java面试题常见算法总结

Java数据结构和算法总结-冒泡排序选择排序插入排序算法分析

Java排序算法分析与实现:快排冒泡排序选择排序插入排序归并排序

Java数据结构和算法——冒泡选择插入排序算法

几种常见的排序算法分析学习