
算法
代码的马
这个作者很懒,什么都没留下…
展开
-
稀疏数组的学习心得
在一个使用二维数组保存围棋棋盘和还原围棋棋盘的过程来加深对稀疏矩阵的理解 如右图所示,将棋盘形象的表示为右边的二维数组,1表示黑子,2表示篮子 我们可以用右边的二维数组来保存这个数组,但是我们还可以用稀疏数组来表示这个二维数组, 它的好处就是减小了保存棋盘的数组大小,减小了棋盘复原的遍历时间 原理很简单,接下来直接上代码: 1.第一步:用二维数组将棋盘表示出来 package sparsearray; import java.io.*; /** * @filename Spars原创 2021-07-06 17:38:37 · 652 阅读 · 1 评论 -
详细解读插入排序
插入排序的思想也是比较好理解的,首先将数组的第一个元素作为已经排好的有序数组,将第二个元素按照顺序插入这个有序数组中,这时有序数组的元素个数为两个,接着就是第三个元素,插入到这个有序数组,依此循环,直到有序数组的元素个数等于刚开始排序数组的长度。 代码实现: public class Main { public static void main(String[] args) { int[] arr = {2,3,8,4,9,6,1,7,5,1}; int[]原创 2020-07-22 16:13:25 · 220 阅读 · 0 评论 -
十大经典排序算法之选择排序--------Java
选择排序的大致思路是,是从数组的第一个元素开始,与后面的数做比较,比较出来最小值与第一个元素交换位置,接着从第二个元素开始,与后面的元素做比较,比较出来除第一个元素外的最小元素与第二个元素交换位置,依次比较下去,就得到了一个从小到大排列的数组。 代码实现: public class Main { public static void main(String[] args) { int[] arr = {2,3,8,4,9,6,1,7,5,1}; int[]原创 2020-07-22 14:52:04 · 168 阅读 · 0 评论 -
十大经典排序算法之冒泡排序--------Java
由于冒泡排序的思路很简单,这里就不多做解释了,大概看代码就能看懂。 public class Main { public static void main(String[] args) { int[] arr = {2,3,8,4,9,6,1,7,5,1}; int[] arrs = bubbleSort(arr); for(int i=0;i<arrs.length;i++){ System.out.println.原创 2020-07-22 14:23:03 · 144 阅读 · 0 评论 -
十大经典排序算法之选择排序--------python
原理:设第一个元素为比较元素,依次和后面的元素比较,比较完所有元素找到最小的元素,将它和第一个元素互换,然后又从第二个元素开始,选出除第一个外的最小元素,与第二个元素互换,第三个元素也一样,依此循环就可以得到一个从小到大排序的列表。 下面看代码: def select_sort(arr): #循环选择的遍数 for i in range(len(arr)-1): min_index = i #循环比较 for j in range(i+1原创 2020-07-07 10:13:04 · 159 阅读 · 0 评论 -
十大经典排序算法之基数排序-----python
原理:a[1,20,36,44,6,9,102,86,94,5],一个即将排序的数组a,准备一排0-9依次排好序的桶,先判断a数组中每个元素个位数的值,然后填入对应的桶里,填完之后再从左到右依次从桶里取出来;接着对新排好序的数组从十位判断,位数不够默认为0,以此循环,直到a数组中最大的元素的最高位排完序后,就得到了一个从左到右,依次递增的数组了。 由于python有max内置函数,我这里也没有使用。就不多做阐述了,对于很多语言来说,获取数组内的最大值可能在算法中占时间复杂度的比重比较大。 下面来看下代码原创 2020-07-03 18:04:56 · 178 阅读 · 0 评论