基础算法1——插入排序和希尔排序

news/2024/7/5 19:12:04
View Code
 1 //升序
 2 public class MyInsertSort {
 3     // 直接插入排序
 4     public void StraightInsertionSort(double[] sorted) {
 5         int i, j;
 6         for (i = 2; i < sorted.length; i++) {
 7             if (sorted[i] < sorted[i - 1]) {
 8                 sorted[0] = sorted[i];// 设一监视哨
 9                 sorted[i] = sorted[i - 1];
10                 for (j = i - 2; sorted[j] > sorted[0]; j--) {// 所有大于监视哨值后移
11                     sorted[j + 1] = sorted[j];
12                 }
13                 sorted[j + 1] = sorted[0];
14             }
15         }
16     }
17 
18     // 希尔排序
19     public void ShellSort(double[] sorted) {
20         int incr[] = { 7, 5, 3, 1 };
21         for (int i = 0; i < incr.length; i++) {
22             ShellInsertSort(sorted, incr[i]);
23         }
24     }
25 
26     public void ShellInsertSort(double[] sorted, int incr) {
27         // TODO Auto-generated method stub
28         int i1, j1;
29         for (i1 = 1 + incr; i1 < sorted.length; i1++) {
30             if (sorted[i1] < sorted[i1 - incr]) {
31                 sorted[0] = sorted[i1];
32                 for (j1 = i1 - incr; (sorted[j1] > sorted[0]) && j1 > 0; j1--) {
33                     sorted[j1 + incr] = sorted[j1];
34                 }
35                 sorted[j1 + incr] = sorted[0];
36             }
37         }
38     }
39     
40 }

 


http://www.niftyadmin.cn/n/4253835.html

相关文章

浅议企业对员工的压力管理

联合国国际劳工组织发表的一份调查报告认为&#xff1a;“心理压抑将成为 21世纪最严重的健康问题之一。”企业管理者已日益关注工作情景中的员工压力及其管理问题。因为工作中过度的压力会使员工个人和企业都蒙受巨大的损失。据美国一些研究者调查&#xff0c;每年因员工心理压…

数据结构 - 队列

队列数据结构 - 队列&#xff0c;先入先出。 // 队列实现 // ES5 var Queue function() {var items [];// 队列入列this.enqueue function(element) {items.push(element);};// 队列出列this.dequeue function() {return items.shift();};// 检查队列第一个元素this.front …

Ubuntu系统经常使用操作指令说明

使用U盘拷贝压缩文件 文件的压缩方法详见&#xff1a;3.6文件归档压缩及其释放 U盘直接插入机器USB接口。等待自己主动弹出窗体&#xff0c;在弹出窗体选择“文件->打开终端”&#xff0c;打开的终端当前文件夹默觉得U盘所在的文件夹。直接在当前文件夹进行拷贝的操作就可…

struts2中form的theme属性

struts2中theme属性包括xhtml,html,simple,ajax 。默认是xhtml theme&#xff1a;设置struts2标签的主题&#xff0c;默认为xhtml。themexhtml时&#xff1a;会默认额外生成tr,td。themesimple时&#xff1a;就生成标签所对应的html标签形式。 在默认情况下,表单元素是分布在不…

世界杯2号宣言

&#xff01;&#xff01;&#xff01;世界杯宣言&#xff01;&#xff01;&#xff01; 听&#xff0c;征招的号角已吹响&#xff0c;龙起卷&#xff0c;马长嘶&#xff0c;血液开始沸腾~ 兄弟们&#xff0c; 抄起喇叭&#xff0c;挥起彩旗&#xff0c;走&#xff0c;看球去…

数据结构 - 链表

链表数据结构 - 链表。 // 链表实现 // ES5 var linkedList function() {// 链表头var head null;// 链表长度var length 0;// 辅助类&#xff1a;节点var Node function(element) {this.element element;this.next null;};// 链表尾追加元素this.append function(eleme…

数据结构 - 集合

集合数据结构 - 集合&#xff0c;不重复。 // 集合实现 // ES5 var MySet function() {var items {};// 检查元素是否存在this.has function(value) {return items.hasOwnProperty(value);};// 添加元素this.add function(value) {// 集合不重复 - 先检查元素是否存在if (!…

libuv定时器的使用

2019独角兽企业重金招聘Python工程师标准>>> 定时器有这么以下几个函数: int uv_timer_init(uv_loop_t *, uv_timer_t *handle); int uv_timer_start(uv_timer_t *handle, uv_timer_cb cb, uint64_t timeout, uint64_t repeat); int uv_timer_stop(uv_timer_t *hand…