博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
冒泡排序、选择排序和插入
阅读量:6441 次
发布时间:2019-06-23

本文共 2344 字,大约阅读时间需要 7 分钟。

冒泡排序、选择排序和插入排序代码如下:

package cn.luxh.app.test;public class SimpleSortUtil {        /**     * 冒泡排序     * 从小到大排序     * 思路:     * 1)第一趟排序进行了len-1次比较,数组中的最大值元素排到了最末端,位置已固定,该元素不再参与下趟比较     * 2)第二趟排序进行了len-2次比较,因为只需要比较到第一个位置固定的元素(第一趟排序中的最大值元素)即可,数组中的第二大值元素位置也已固定,该元素不再参与下趟比较     * 3)第三趟排序进行了len-3次比较,因为只需要比较到第一个位置固定的元素(第二趟排序中的最大值元素)即可,数组中的第三大值元素位置也已固定,该元素不再参与下趟比较     * 4)依次类推...     *      * @param array     * @return     */    public static int[] bubbleSort(int[] array) {        int out;//外层循环计数        int in;//内层循环计数        int len = array.length;                 //1)外层for循环计数器out从数组的最后开始,即out等于len-1,每经过一次循环,out减1(往左移);         //2)下标大于out的元素都是已经排好序的了;         //3)内层for循环计数器in从数组的最开始算起,即in=0,每完成一次内部循环加1,当in等于out时结束一次循环。         //4)在内层循环中,比较in和in+1的两个元素        for(out=len-1;out>1;out--) {            //下标大于out的元素都是已经排好序的,不用再处理。            for(in=0;in
array[in+1]) { //当前元素值比后面的元素值大,则交换两个元素的位置 int temp = array[in]; array[in] = array[in+1]; array[in+1] = temp; } } } return array; } /** * 选择排序 * 从小到大排序 * 思路: * 1)第一趟比较时,找到最小的元素,然后这个最小元素和数组最左边(下标为0)的元素交换位置,这个最小值不再参与下次比较 * 2)第二趟比较时,从下标为1的元素开始,找到最小的元素,然后把这个最小值元素和下标为1的元素交换位置,这个最小元素不再参与下次比较 * 3)依次类推... * @param array * @return */ public static int[] selectionSort(int[] array) { int min;//最小值下标 int in;//内层循环计数 int out;//外层循环计数 int len = array.length; for(out=0;out
0 && array[in-1] >=temp) { //大于标志位的值,则右移 array[in] = array[in-1]; in--;//左移计数器 } //插入标志为值 array[in] = temp; } return array; } }

测试:

package cn.luxh.app.test;import org.junit.Test;public class SimpleSortTester {        @Test    public void testSort() {        int[] array = {6,45,35,23,78,34,26,67,38,90,345,2345,12,3568,80,100};        //SimpleSortUtil.bubbleSort(array);        //SimpleSortUtil.selectionSort(array);        SimpleSortUtil.insertSort(array);        displayArray(array);    }        public void displayArray(int[] array) {        for(int a:array) {            System.out.println(a);        }    }    }

转载于:https://www.cnblogs.com/zhoushengbing/p/3199713.html

你可能感兴趣的文章
collect2: ld returned 1 exit status
查看>>
泛型的概述
查看>>
TWaver矢量小试——Android演进路线图
查看>>
华为手机真机调试设置
查看>>
http 小爬虫
查看>>
“工欲善其事,必先利其器”——UC浏览器研发中实用测试工具
查看>>
字符串转double算法
查看>>
seleect io模型的select操作封装
查看>>
记一次使用dockerfile安装debian并安装好vim,netstat等工具
查看>>
【LeetCode】141 Linked List Cycle (java实现)
查看>>
动态设置软键盘打开会关闭
查看>>
便携式能源设备
查看>>
云盘发展方向研究和总结
查看>>
xcodebuild和xcrun自动化编译ipa包 笔记
查看>>
Spring 的启动过程
查看>>
livereload的使用
查看>>
js判断页面值是否被改变
查看>>
【Linux 系统编程】常用的一些基本命令
查看>>
VUE实现的一个简单分页表格
查看>>
spring4.0 整合 Quartz 实现任务调度(一)
查看>>