文章目录阅读这篇文章就证明已经开始踏上了算法的修仙之路,接下来我会两天一更,介绍图解算法里面的算法的实现, 适合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");
}
}
结果
总结
对于学习算法,之前我也是一头雾水, 之后就买了图解算法准备入门,也可以为后面学习 框架了解底层做打算,也可以顺手准备之后的蓝桥杯。 希望大家也多去学习算法,将生活的各个细节与算法结合,将会事半功倍



