![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构及算法
画蛇添足
我是一个人!
展开
-
二叉树的定义、前序遍历、广度遍历
二叉树类的定义:public class BTree { private T data; private BTree leftChild; private BTree rightChild; public BTree() { } public BTree(T data, BTree leftChild, BTree rightChild) { this.data原创 2012-08-10 14:42:07 · 688 阅读 · 0 评论 -
均方根误差(RMSE),平均绝对误差(MAE),标准差(Standard Deviation)的对比
记录一下,点这里转载 2019-05-29 10:06:16 · 4312 阅读 · 0 评论 -
深入分析ConcurrentHashMap
线程不安全的HashMap因为多线程环境下,使用HashMap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap,如以下代码final HashMap map = new HashMap(2);Thread t = new Thread(new Runnable() { @Override public void run()转载 2012-11-26 13:49:14 · 498 阅读 · 0 评论 -
多线程下非阻塞堆栈的实现
此实现来自:点击打开链接具体如下:package com.test;import java.util.concurrent.atomic.AtomicReference;public class ConcurrentStack{ private AtomicReference> head = new AtomicReference>(); public转载 2012-10-15 11:25:23 · 675 阅读 · 0 评论 -
字符串全排列
依次选出每一个字符元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理,从而得到所有元素的全排列。以对字符串abc进行全排列为例,我们可以这么做: 固定a,求后面bc的排列:abc,acb,求好后,a和b交换,得到bac 固定b,求后面ac的排列:bac,bca,求好后,c放到第一位置,得到cba 固定c,求后面ba的排列:cba,cab。public class Te原创 2012-08-11 10:29:03 · 659 阅读 · 0 评论 -
插入排序实现
/** * 插入排序,适用于少量数据的排序,时间复杂度O(n2),是稳定的排序算法,原地排序 * * @param a */ public static void insertSort(int[] arr) { int length = arr.length; for (int i = 1; i < len原创 2012-08-11 10:24:07 · 452 阅读 · 0 评论 -
二分搜索(折半搜索)的实现
public class BinarySearch{ public static void main(String[] args) { int[] arr = new int[]{1,2,3,4,5}; int key = 1; serach(arr, key); } public static int原创 2012-08-11 10:19:03 · 429 阅读 · 0 评论 -
插入排序实现
public class Sort{ public static void main(String[] args) { int[] arr = new int[]{8,6,15,45,12,36,25,5}; insertSort(arr); for(int a : arr) {原创 2012-08-11 10:16:39 · 449 阅读 · 0 评论 -
奇偶排序
题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分。要求时间复杂度为O(n)。 针对这个题目,我们可以维护两个指针,一个指针指向数组的第一个数字,向后移动;一个指针指向最后一个数字,向前移动。分四种情况: 1.如果后一个指针指向奇数而前一个指针指向偶数,则交换两个数;之后,前一个指针继续向后移动,后一个指针继续向前移动; 2.原创 2012-08-11 10:30:25 · 850 阅读 · 0 评论 -
K-Means聚类算法的原理及实现
K-Means是聚类算法中的一种,其中K表示类别数,Means表示均值。顾名思义K-Means是一种通过均值对数据点进行聚类的算法。K-Means算法通过预先设定的K值及每个类别的初始质心对相似的数据点进行划分。并通过划分后的均值迭代优化获得最优的聚类结果。K值及初始质心K值是聚类结果中类别的数量。简单的说就是我们希望将数据划分的类别数。K值决定了初始质心的数量。K值为几,就要有几个质心。选择...转载 2019-07-02 13:54:09 · 633 阅读 · 0 评论