栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

算法图解之选择排序(JAVA版本)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

算法图解之选择排序(JAVA版本)

阅读这篇文章就证明已经开始踏上了算法的修仙之路,接下来我会两天一更,介绍图解算法里面的算法的实现, 适合Java程序员阅读。

文章目录
  • 前言
  • 一、使用工具
  • 二、介绍两种存储方式
    • 图示:
    • 总结:
  • 三、实现选择排序
    • 介绍
    • 代码实现
    • 结果
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

例如: 这里需要数组,链表和大O表示法的基础, 可以自行百度查找,锻炼自己阅读的能力


提示:以下是本篇文章正文内容,下面案例可供参考

一、使用工具

记笔记:用Typora, 个人觉得做笔记用这个够用了,一定要学会的技能
写代码:idea 社区版 或者其他也行,不影响学习算法

二、介绍两种存储方式 图示:

1.链表

2.数组

总结:
大O表示法指的是程序运行的时间,这个时间是增速而不是真正耗时
O(1): 常量时间
O(n): 线性时间

数组和链表其实各有优点, 
当然在学习Java的用的最多的是数组,
但是学习到数据结构的时候可能就需要链表了,
所有两者都需要掌握。
三、实现选择排序 介绍
选择排序: 你可以把它当作一个打扑克时候你抓牌的时候,如何要整理
你手上的牌? 这个问题可以身临其境想想,这样你可以加深对排序的
理解

掌握选择排序的作用:
1. 选择排序并不是最快, 运行时间为O(n2)  n2表示n的平方
而快速排序的运行时间为(nlogn)
2.掌握几种排序之后,学习其他排序的时候也能更快上手 
代码实现
public class selection_sort {

    public static void main(String[] args){
        //待排序的数组 -> 考虑到重复元素
        Integer[] myList = new Integer[]{5,3,6,2,10,1,3,11,7,1};
        System.out.println("数组的长度 = " + myList.length);
        //对数组重新进行排序
        selectSort(myList);
        //打印函数
        print(myList);
    }
    //实现选择排序
    private static void selectSort(Integer[] myList) {
        //最小元素索引
        Integer smallestItemIndex = null;

        for(int i = 0; i < myList.length; i++){
            smallestItemIndex = i;
            //每次都会选出一个最小值
            for(int j = i; j < myList.length; j++){
                //选择最小元素的索引
                if(myList[smallestItemIndex] > myList[j]){
                    smallestItemIndex = j;
                }
            }
            //判断最小元素的索引是否发生改变了  -> 交换法
            if(smallestItemIndex != i){
                Integer temp = myList[smallestItemIndex];
                myList[smallestItemIndex] = myList[i];
                myList[i] = temp;
            }
        }
    }

    // 打印结果
    private static void print(Integer[] myList) {
        for(int i = 0; i < myList.length; i++){
            System.out.print(myList[i] + "->");
        }
        System.out.println("null");
    }
}
结果

总结
对于学习算法,之前我也是一头雾水,
之后就买了图解算法准备入门,也可以为后面学习
框架了解底层做打算,也可以顺手准备之后的蓝桥杯。 
希望大家也多去学习算法,将生活的各个细节与算法结合,将会事半功倍
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/850080.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号