简单排序算法设计(Java)

总共有八种排序算法,还是慢慢看吧

1、简单排序算法

简单排序算法就是设置标兵,逐个比较数,然后查找插入位置,插入

public static void p(int[] a){for(int i=0;i<a.length;i++){System.out.print(a[i]+" ");}}public static void sorting(int[] a){int m =a.length;for(int i=1;i<m;i++){if(i==1){if(a[i]<a[i-1]){int temp = a[i];a[i] = a[i-1];a[i-1] =temp;}}else{if(a[i]<a[i-1]){int j=i-1;int x=a[i];             //设置x为标兵//a[i]=a[i-1];//System.out.println(a[j]);  while(x<a[j]){           //查找位置,逐个比较大小a[j+1]=a[j];     //向后移一位    j--;             p(a);System.out.println();}a[j+1]=x;          //插入}}}}

 2、希尔排序算法

希尔排序算法,也算是直接插入排序的升级版。

算法思想:先将整个待排的记录序列分割成若干个子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。

操作方法:

  1. 选择一个增量序列dk1,dk2,…,dkn,其中ti>tj,dkn=1,dk=n/2;
  2. 按增量序列个数k,对序列进行k 趟排序;
  3. 每趟排序,根据对应的增量dk,将待排序列分割成若干长度为m 的子序列,分别对各子表进行直接插入排序。仅增量因子为1 时,整个序列作为一个表来处理,表长度即为整个序列的长度。
public static void Shell(int[] a,int n,int dk){for(int i=dk;i<n;i++){int j=i-dk;int x=a[i];if(a[j]>x){a[j+dk] = a[j];j-=dk;}a[j+dk]=x;}}public static void Shell(int[] a){int n=a.length;int dk = n/2;while(dk>=1){Shell(a,n,dk);dk=dk/2;}}

输出函数

public static void p(int[] a){for(int i=0;i<a.length;i++){if(i==0){if(a[i+1]<a[i]){int temp = a[i+1];a[i+1] = a[i];a[i] =temp;}}System.out.print(a[i] + " ");}System.out.println();}

 

转载于:https://www.cnblogs.com/zrlhss/p/4022503.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cocos2d-x坐标系

在cocos2d-x在&#xff0c;有几种不同的坐标系。因为有好几个坐标系着一定的差异&#xff0c;他们需要明白&#xff0c;能力更精确的绘制各种图形画面上。 1.屏幕坐标系 只windows通过绘制图形上基本都知道。相应的坐标系统&#xff1a;原点在左上角。向右是x轴正方向&#xff…

android收入管理系统,毕业设计(论文)-基于Android系统的家庭理财通软件的设计——收入管理模块.docx...

PAGE河北农业大学信息学院本科毕业论文题 目&#xff1a;基于Android系统的家庭理财通软件的设计——收入管理模块学 院&#xff1a; 信息科学与技术学院专业班级&#xff1a; 计算机科学与技术0902班学 号&#xff1a;二O一三 年 五 月 二十八 日摘 要基于安卓系统的家庭理财通…

BZOJ1652 [Usaco2006 Feb]Treats for the Cows

蒟蒻许久没做题了&#xff0c;然后连动规方程都写不出了。 参照iwtwiioi大神&#xff0c;这样表示区间貌似更方便。 令f[i, j]表示i到j还没卖出去&#xff0c;则 f[i, j] max(f[i 1, j] v[i] * T, f[i, j - 1] v[j] * T) &#xff08;←这样用推的方式更好想一点。。&#…

android系统提供了url通信,Android两种HTTP通信,HttpURLConnection和HttpClient

Android系统中主要提供了两种方式来进行HTTP通信&#xff0c;HttpURLConnection和HttpClient&#xff0c;几乎在任何项目的代码中我们都能看到这两个类的身影&#xff0c;使用率非常高。不过HttpURLConnection和HttpClient的用法还是稍微有些复杂的&#xff0c;如果不进行适当封…

ECSHOP 订单状态 记录

记录订单状态 order_status /* 订单状态 */ define(‘OS_UNCONFIRMED’, 0); // 未确认 define(‘OS_CONFIRMED’, 1); // 已确认 define(‘OS_CANCELED’, 2); // 已取消 define(‘OS_INVALID’, 3); // 无效 define(‘…

git+jekyll部署备忘

github&#xff0c;会自动帮忙编译jekyll编写的文件&#xff0c;只要将文件放到gh-pages分支 (或者使用官方教程的二级域名方式&#xff0c;项目名字&#xff0c;可以随便起&#xff0c;官网的例子是 用户名.github.com 作为项目名字&#xff0c;可以使用 用户名.github.com …

buidulbs android.jar,在将AS项目迁移到IDEA时,无法将com.android.bui...

我需要从Android Studio迁移到IntelliJ IDEA,因为我需要在Java中进行其他一些非Android的工作.我从git克隆了我的项目,并将其导入到IDEA中.但是,我在此过程中遇到了Gradle错误.我已经搜索过,但是找不到解决我的错误的答案.这是事件日志03:39:42 PM All files are up-to-date03:…

[华为机试练习题]60.水仙花数

题目 描述: 水仙花数又称阿姆斯特朗数。 水仙花数是指一个n 位数( n≥3 )&#xff0c;它的每个位上的数字的n 次幂之和等于它本身。&#xff08;例如&#xff1a;1^3 5^3 3^3 153&#xff09; 求输入的数字是否为水仙花数练习阶段: 初级 代码 /*-------------------------…

fscanf的返回值未成功输入的元素个数 .xml

test.txt 中保存的为&#xff1a;12345程序int i,j,k; FILE *fpfopen("e://test.txt","r"); if (fpNULL) { //return FALSE; } while (!feof(fp)) { jfscanf(fp,"%d%d",&i,&k); cout<<i<</t<<k<</t<…

Chrome英文版离线安装包下载

在原来在线安装地址后面加上 ?standalone1 即可 https://www.google.com/intl/en/chrome/browser/desktop/index.html?standalone1

搜索 由浅入深 之一 水题

搜索很重要&#xff0c;是很难学的算法&#xff0c;能看懂很简单&#xff0c;但是要想真正做出题来就比较困难了&#xff0c;那么&#xff0c;我们现在就水题开始研究搜索。 水题之&#xff1a; 1024: [SCOI2009]生日快乐 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 830 …

android studio创建文件,如何在Android Studio中创建File Templates

标签&#xff1a; File Template Android Studio我发现一个可以让写程序变得简单的方法&#xff0c;那就是自定义文件模板(Custom File Templates).那么什么是File Templates呢&#xff1f;说白了&#xff0c;就是一个已经包含一部分代码的源文件如何创建File Templates首先&am…

odoo 中多币种处理(外币处理)

2019独角兽企业重金招聘Python工程师标准>>> 1. odoo多币种处理 http://www.cnblogs.com/godzone/archive/2012/11/05/2754436.html 2. OpenERP的价格表&#xff08;Pricelist&#xff09;机制: http://www.chinamaker.net/html/2011/study_1123/78.html 3. odoo …

android handler、looper、message、messageQueue、

一&#xff1a;handler&#xff0c;looper&#xff0c;message&#xff0c;messagequeue&#xff0c;thread handler: 消息处理着&#xff0c;负责Message消息的发送&#xff08;handler.sendMessage(....)&#xff09;以及处理消息&#xff0c;对于handler处理消息则需要实现h…

h5 android数字键盘,【笔记】移动端H5数字键盘input type=number的处理(IOS和Android)...

在Vue中的项目&#xff0c;基于VUX-UI开发&#xff0c;一个常见的需求&#xff1a;1、金额输入框2、弹出数字键盘3、仅支持输入两位小数&#xff0c;限制最大11位数&#xff0c;不允许0开头第一&#xff0c;首先想到额就是在VUX-UI中制定typenumber。--不可行VUX中的文档和代码…

Sybase数据库应用系统调优的五大领域

Sybase数据库应用系统调优的五大领域 2011/3/14/13:49来源&#xff1a;慧聪it网本 文以“某大型商业银行的网上银行系统”这一很具有典型意义的企业级大型Sybase数据库应用系统为例&#xff0c;涉及了数据库应用系统调优的五大领域&#xff1a;压力测试、 应用端调优、服务器端…

JQGrid 参数、属性API

JQGrid是一个在jquery基础上做的一个表格控件&#xff0c;以ajax的方式和服务器端通信。 JQGrid Demo 是一个在线的演示项目。在这里&#xff0c;可以知道jqgrid可以做什么事情。下面是转自其他人blog的一个学习资料&#xff0c;与其说是学习资料&#xff0c;说成查询帮助文档更…

android 6.0 ios9谁快,没安卓6.0流畅?iOS 9突飞猛进终于不卡

今天早些时候&#xff0c;iOS 9.1正式发布&#xff0c;改进系统Bug&#xff0c;添加新功能等&#xff0c;但还有不少反应系统流畅了。不知道是否是心里作用的关系&#xff0c;之前不少果粉吐槽iOS 9过于卡顿&#xff0c;苹果也是在一个版本一个版本的改进&#xff0c;这次的iOS…

(UML两个汇总)九种图。

最后总结UML关系&#xff0c;有明确的关系&#xff0c;现在让我们总结一下UML九图。。图往往比文字要直观&#xff0c;因此&#xff0c;当我们开发软件。文件必须是不可或缺的人物&#xff0c;。以下我将这九种图分了一下&#xff1a; 我们还能够将这九种图分为静态图和动态图&…

AutoMapper搬运工之自定义类型转换

前言 最近还挺忙&#xff0c;还有点累&#xff0c;一直都没更新了&#xff0c;实在是懒呀。正题之前先说点别的&#xff0c;最近公司要扩张了&#xff0c;需要大量开发&#xff0c;领导说推荐有钱可以拿&#xff0c;如此好机会&#xff0c;我就趁机做个广告。ShippingRen.com招…