摆动排序-归并排序-归并排序

排序

- 摆动排序

给你一个没有排序的数组,请将原数组就地重新排列满足如下性质:

nums[0] <= nums[1] >= nums[2] <= nums[3]....

答案:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Solution {
/**
* @param nums a list of integer
* @return void
*/
public void wiggleSort(int[] nums) {
for(int i=1; i<nums.length; i++){
if ((i%2==1 && nums[i-1]>nums[i])||
(i%2==0 && nums[i-1]<nums[i]))
swap(nums, i-1, i);
}

}

/**
* Swap two values
* */
public void swap(int[] nums, int i, int j) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}

}
Read more

数据结构之二叉树相关


二叉树的相关术语:

树的结点:包含一个数据元素及若干指向子树的分支; 孩子结点:结点的子树的根称为该结点的孩子; 双亲结点:B 结点是A 结点的孩子,则A结点是B 结点的双亲; 兄弟结点:同一双亲的孩子结点; 堂兄结点:同一层上结点; 祖先结点: 从根到该结点的所经分支上的所有结点子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙 结点层:根结点的层定义为1;根的孩子为第二层结点,依此类推; 树的深度:树中最大的结点层 结点的度:结点子树的个数 树的度: 树中最大的结点度。 叶子结点:也叫终端结点,是度为 0 的结点; 分枝结点:度不为0的结点; 有序树:子树有序的树,如:家族树; 无序树:不考虑子树的顺序; 参考

Read more

小麦抽样管理系统说明书

注册与登录

软件打开后,点击 注册 按钮注册账号,在注册界面,详细的填写个人信息和个人银行卡信息,用于接收补助, 用户名密码 作为需要仔细记住用于日后登录。如果注册完成后发现内容填写有误,后期可在主界面的【设置】->【个人资料】中修改。注册界面如图1所示。

图1 注册界面示意图

Read more

在Ubuntu(Gnome桌面)设置StarDict词典的开启快捷键

因为没找到 StarDict 的快捷打开/隐藏键,每次都要用鼠标点,觉得很不爽,于是找了一下,发现有个命令行版本,使用 StarDict 的词库。

1
2
3
4
5
6
7
8
9
10
11
12
13
sudo apt install sdcv

$ sdcv -h
sdcv - console version of StarDict.
Usage: sdcv [OPTIONS] words
-h, --help display this help and exit
-v, --version display version information and exit
-l, --list-dicts display list of available dictionaries and exit
-u, --use-dict bookname for search use only dictionary with this bookname
-n, --non-interactive for use in scripts
--utf8-output output must be in utf8
--utf8-input input of sdcv in utf8
--data-dir path/to/dir use this directory as path to stardict data directory

然后在Ubuntu设置中找到 键盘 -> 快捷键 -> 自定义快捷键 ,添加一个快捷键命令: gnome-terminal --command sdcv ,即可通过快捷键启动一个终端查词了

Read more

新抽样单协议

1. 抽样单协议

为了实现抽样系统中电子抽样单的灵活性,修改原抽样系统中的问题,修改抽样单协议如下。(协议括号中的英文为服务器与手机端传输时定义的Key,未经允许,不可修改。)

1.1 抽样单结构

0抽样单仿照纸质抽样单,但比纸质抽样单功能更加丰富,抽样单的结构如下:

1
2
3
4
--单元格(cell)
--单元格(cell)
...
--单元格(cell)

以上是一张抽样单,由多个单元格组成,没有其他任何杂项。 如果需要添加功能,需要在单元格类型属性中添加类型。 用户通过在线设计不同功能的单元格实现不同功能的抽样单。

1.2 单元格属性

为了实现单元格的多样性,单元格具有多个属性,这些属性在使用在线设计抽样单功能时可以进行修改,下发到手机后,单元格的属性不可修改,手机根据不同的单元格类型(单元格属性之一) 属性,解析成不同的单元格。

下面介绍单元格的属性:

  • 单元格名称(cell_name): 在制表时由用户填写,例如,“样品名称”,“亩产量”等
  • 单元格类型(cell_type): 在制表时由用户选择,例如,文本类,填写类,照相类等。
  • 单元格值(cell_value): 在制表时由用户填写,此属性仅对部分类型单元格有效,如填写类和选择类,其他单元格不受此属性影响。
  • 单元格是否可编辑(cell_editable): 以下全为二值型属性(T,F,分别代表True,False),在制表时选择。此属性仅对部分类型单元格有效,如填写类,其他单元格不受此属性影响。
  • 单元格是否为必填(cell_fill_required): 同上,手机端的必填项单元格如果不填写不能保存
  • 单元格是否可打印(cell_printable): 同上,代表单元格是否具有打印功能
  • 单元格是否默认勾选打印(cell_default_print): 同上,代表单元格打印的默认勾选状态
  • 单元格可否被加样(cell_copyable): 同上。关于加样功能,解释如下:假设以下场景,在同一个村采100个样品,抽样单中的“抽样所在村”单元格每次都要填写相同的村名,而其他的单元格“样品编号等” 则每次填写不同的内容,所以为了方便采样人员在填写抽样单模板时不必每次填写重复内容,本系统设计了加样功能,即填写抽样单时,在不退出当前模板的界面,点击“加样”按钮后,可被加样的单元格(需要改变内容的单元格)被复制,而不可被加样的单元格(不需要改变内容的单元格)不被复制,最后采样人员在一个模板界面可一键保存成多个抽样单。单元格的可否被加样属性需要抽样单设计者在制作抽样单时设计好。

除了以上的属性,开发者可以通过添加单元格类型来增加抽样单功能。但是,开发者在开发网页端和手机端时一定要谨慎:要将不同属性的单元格封装好,日后如果需要添加单元格属性,只需要对新的单元格类型进行封装即可进行二次开发。

可以看出,抽样单是由多个单元格组成,每个单元格具有多个属性,其中单元格的功能体现在单元格类型上,这好比一个公司(抽样单)又许多员工(单元格)组成,每个员工具有多个不同的属性(性别,姓名,工种等),而员工的功能体现在工种(单元格类型)上。

Read more

4月第三周报告

做小麦采样软件

抽样单协议的变化原因

  1. 根据老师对软件的要求,分析出新需求与之前软件的差别:
  • 要求给农民使用,所以不能存在被抽样单位抽样单位等字眼,而这些在以前的抽样的里是固定死的。
  • 要求能够最后添加一遍样品。之前抽样的只能对样品情况进行添加,与现在需求不符
  • 要求可以添加病虫害的照片。之前每个抽样单中固定设置为只有一个单元格用于拍照,一个单元格录像和一个单元格定位。与现在需求不符
  • 要求地理位置可以进行补充。
  • 出现了新的单元格类型,比如二级单选单元格(type_radio_with_secondary_choice),多选单元格(type_multi_select),之前只有一级单选单元格。
  1. 之前抽样单存在的诟病
  • 没有留下一个清楚的协议,后期需求变动时通过阅读代码分析协议。
  • 抽样单部分的代码质量差,注释少。
  • 以前的抽样单列表中显示的是样品编号和被抽样单位地址,在新软件中没有这两个选项

新采样系统设计

抽样监督管理系统,致力于提高我国农业现代化建设水平,具有以下优势

  • 国家可以迅速的发现问题,根据质检结果制定相应的应急措施。
  • 缩短抽样任务下发和上传的时间周期。
  • 保证抽样过程的严谨性,提高抽样的质量和效率。
  • 节省人力、物力,提高抽样检测的溯源能力。
Read more

新抽样单协议

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post" $

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×