作者归档:在线疯狂

RSS feed of 在线疯狂

Java实现单向链表的归并排序

由于链表(LinkedList)不支持随机访问(Random Access),只允许顺序访问,因此对于链表的O(logn)时间复杂度的排序算法不可以采用诸如快速排序等基于随机访问的排序算法,而归并排序可以满足这一需求。

归并排序是分治法(Divide and Conquer)的典型应用,其伪代码如下:

merge_sort(list) {
  split list into two halfs, say first and second ;
  merge_sort(firstHalf);
  merge_sort(secondHalf);
  merge(firstHalf,secondHalf);
}

下面的Java代码实现了对单链表(singly linked list)的归并排序,代码实现优美,可读性强,具有较高的参考价值:

// The main function
public Node merge_sort(Node head) {
    if (head == null || head.next == ...

继续阅读

使用jQuery Spinner替代HTML5标签 input[type=number]

jQuery UI中提供的Spinner组件可以将input[type=text]文本框转换为一个数字输入框,类似于HTML中新增的input[type=number],并支持使用键盘上下键以及鼠标滚轮对其中的数值进行更改。

注:鼠标滚轮事件缺省只支持部分浏览器,可使用jQuery Mousewheel插件添加跨浏览器的鼠标滚轮事件支持

jQuery UI Spinner实例如下:

上例代码如下:

<script src="https://libs.baidu.com/jqueryui/1.10.4/jquery-ui.min.css"></script>
<script type="text/javascript">
  $(function() {
    $( "#spinner" ).spinner();
  });
</script>

<p>
  <label for="spinner">Select a value:</label>
  <input id="spinner" name="value" />
</p> ...

继续阅读

使用百度ECharts绘制饼图

百度ECharts是一款由百度前端团队开发与维护的,基于HTML5的开源JavaScript图表库。E是Enterprise的简称,意思是商业级数据图表。

本文简述使用ECharts绘制饼图(Pie Chart)的过程,下图为使用ECharts绘制的饼图实例。

继续阅读