`
simohayha
  • 浏览: 1395717 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

各种排序算法的java实现

    博客分类:
  • java
阅读更多
很早以前学算法的时候写的 ^_^。
1. BubbleSort
import java.util.*;
public class BubbleSort{
public void sort(int[] a){
for(int i=0;i
for(int j=a.length-1;j>=i+1;j--){
if(a[j]
int tmp =a[j];
a[j]=a[j-1];
a[j-1]=tmp;
}
}
}
}
public static void main(String[] args){
int[] a = {1,6,3,8,1,56,};
BubbleSort bs = new BubbleSort();
bs.sort(a);
System.out.println(Arrays.toString(a));
}
}


2 InsertSort

import java.util.*;
public class InsertSort{
private int i=0;
public void sort(int[] a){
for(int j=1;j
int keys = a[j];
i =j-1;
while(i>=0&&a[i]>keys){
a[i+1]=a[i];
i--;
}
a[i+1]=keys;
}
}
public static void main(String[] args){
InsertSort i = new InsertSort();
int[] f={5,2,4,6,1,3,0};
i.sort(f);
System.out.println(Arrays.toString(f));
}
}

3 MergeSort

import java.util.*;
public class MergeSortTest{
private int[] l,r1;
public void merge(int[] a,int p,int q,int r){
int n1 =q-p+1;
int n2 = r-q;
l=new int[n1];
r1 = new int[n2+1];
for(int i=0;i
l[i]=a[p+i];
}
l[n1-1]=Integer.MAX_VALUE;
for(int i=0;i
r1[i]=a[q+i];
}
r1[n2] =Integer.MAX_VALUE;
int i=0;
int j=0;
for(int k=p;k
if(l[i]<=r1[j]){
a[k]=l[i];
i=i+1;
}else{
a[k]=r1[j];
j=j+1;
}
}
}
public void mergeSort(int[] a,int p,int r){
if(p+1
int q=(p+r)/2;
mergeSort(a,p,q);
mergeSort(a,q,r); 
merge(a,p,q,r);
} 
}
public static void main(String[] args){
int[] a1 = {3,41,52,26,38,57,9,49};
MergeSortTest mst =new MergeSortTest();
mst.mergeSort(a1,0,a1.length);
System.out.println(Arrays.toString(a1));
}
}

4 SelectionSort

import java.util.*;
public class MergeSortTest{
private int[] l,r1;
public void merge(int[] a,int p,int q,int r){
int n1 =q-p+1;
int n2 = r-q;
l=new int[n1];
r1 = new int[n2+1];
for(int i=0;i
l[i]=a[p+i];
}
l[n1-1]=Integer.MAX_VALUE;
for(int i=0;i
r1[i]=a[q+i];
}
r1[n2] =Integer.MAX_VALUE;
int i=0;
int j=0;
for(int k=p;k
if(l[i]<=r1[j]){
a[k]=l[i];
i=i+1;
}else{
a[k]=r1[j];
j=j+1;
}
}
}
public void mergeSort(int[] a,int p,int r){
if(p+1
int q=(p+r)/2;
mergeSort(a,p,q);
mergeSort(a,q,r); 
merge(a,p,q,r);
} 
}
public static void main(String[] args){
int[] a1 = {3,41,52,26,38,57,9,49};
MergeSortTest mst =new MergeSortTest();
mst.mergeSort(a1,0,a1.length);
System.out.println(Arrays.toString(a1));
}
}

5 HeapSort

import java.util.*;
public class HeapSort{
private int largest;
public int left(int i){
return 2*i+1;
}
public int right(int j){
return 2*j+2;
}
public void maxHeapify(int[] a,int i){
int l=left(i);
int r=right(i);
if((la[i])){
largest=l;
}else{
largest=i;
}
if((ra[largest])){
largest=r;
}
if(largest!=i){
int temp = a[i];
a[i]=a[largest];
a[largest]=temp;
maxHeapify(a,largest);
}
}
public void buildMaxHeap(int[] a){
for(int i=a.length/2;i>=0;--i){
maxHeapify(a,i);
}
}
public void sort(int[] a){
buildMaxHeap(a);
//System.out.println(Arrays.toString(a));
for(int i=a.length-1;i>=1;--i){
int temp=a[0];
a[0]=a[i];
a[i]=temp;
int[] b= new int[i];
System.arraycopy(a,0,b,0,i-1);
maxHeapify(b,0);
System.arraycopy(b,0,a,0,i-1);
}
}
public static void main(String[] args){
HeapSort hs = new HeapSort();
int[] a={23,17,14,6,13,10,1,5,7};
hs.sort(a);
System.out.println(Arrays.toString(a));
}
}

6 BucketSort

import java.util.*;
public class BucketSort {

/**
* @param args
*/
private LinkedList[] b;
public void sort(double[] a){
int n=a.length;
b=new LinkedList[a.length];
for(int i=0;i
b[(int)(n*a[i])] = new LinkedList();
}
for(int i=0;i
b[(int)(n*a[i])].add(Double.valueOf(a[i])); 
//System.out.println(b[(int)(n*a[i])]);
}
//System.out.println(Arrays.toString(b));
for(int i=0;i
if(b[i]==null){
continue;
}else{
Collections.sort(b[i]);
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
double[] a ={0.79,0.13,0.16,0.64,0.39,0.20,0.89,0.53,0.71,0.42};
BucketSort bs = new BucketSort();
bs.sort(a);
for(int i=0;i
if(bs.b[i]==null){
continue;
}else{
Iterator it =bs.b[i].iterator();
while(it.hasNext()){
System.out.print(it.next()+" ");
}
}
}
//System.out.println(Arrays.toString(bs.b));
}
}

7 CountingSort

import java.util.*;
public class CountingSort {
/**
* @param args
*/
public void Sort(int[] a,int[] b,int k){
int[] c= new int[k+1];
for(int j=0;j
c[a[j]]=c[a[j]]+1;
}
for(int i=1;i
c[i]=c[i]+c[i-1];
}
for(int j=a.length-1;j>=0;j--){
b[c[a[j]]-1]=a[j];
c[a[j]]=c[a[j]]-1;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a=new int[]{3,1,12,11,4,13};
CountingSort cs = new CountingSort();
int[] b = new int[a.length];
cs.Sort(a,b,13);
System.out.println(Arrays.toString(b));
}
}
分享到:
评论

相关推荐

    各种排序算法java实现

    标题 "各种排序算法java实现" 涉及到的是计算机科学中的一个重要领域——算法,特别是排序算法在Java编程语言中的具体应用。排序算法是数据结构与算法分析中的基础部分,它们用于将一组数据按照特定顺序排列。在这个...

    5.C-Demo-排序

    5.C-Demo-排序_快速排序

    java-ssm942基于ssm的保险公司营销管理系统+jsp程序源码数据库含论文.rar

    本系统基于SSM(Spring+SpringMVC+MyBatis)框架,适用于毕业设计, 基于B/S模式, mysql数据库,感兴趣的朋友们可以下载研究一下。 后端采用java语言,ssm框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统 jdk版本:jdk1.8+ 前端:jsp 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:ssm 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+ssm+jsp+MYSQL+MAVEN

    基于uni-app、uView UI开发的用于表白的微信小程序项目.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    基于java的高考志愿选择辅助系统设计与实现.docx

    基于java的高考志愿选择辅助系统设计与实现.docx

    基于java的网上花店系统设计与实现.docx

    基于java的网上花店系统设计与实现.docx

    vue+SpringBoot516校园兼职系统java毕业设计源码含论文.zip

    jdk版本:jdk1.8+ 前端:vue.js+ElementUI 开发工具:IDEA 或者eclipse都支持 编程语言: java 框架支持:springboot 数据库: mysql 版本不限 数据库工具:Navicat/SQLyog都可以 详细技术:java+springboot+vue+MYSQL+MAVEN 前端采用的Vue框架,后端采用java语言,sprinboot框架,mybatis操作数据源,使用软件:idea,eclipse、MySQL。完成了用户登录管理等模块的设计与实现。完成了系统数据库的设计,并基于MySQL数据库管理系统

    集合了安卓中常用的传输数据的方式:蓝牙传输,热点传输以及基于环信SDK的即时通信(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    2024PHP彩虹工具网源码一个多功能工具箱程序支持72种常用站长和开发等工具

    安装: PHP>=7.4 伪静态设置Thinkphp 设置/public为网站运行目录 访问你的域名/install进行安装即可 安装扩展 sg11 ,fileinfo , ionCube 常用功能 站长工具:ICP备案查询、IP地址查询、域名Whios查询、腾讯域名拦截查询、Mysql管理器等 开发工具:编码解码器、字节计算器、在线进制转换、GitHub下载加速、Markdown在线编辑等QQ强制聊天 实用工具:QQ获取COOKIE、QQ百度高速图床、百度网盘分享、手机归属查询、在线图片编辑、图片转base64等 Q Q 工具:QQ强制聊天、自定义在线机型、单向好友检测、生成加群链接、生成加群链接等 娱乐工具:在线语音合成、ASCII艺术字生成、支付宝到账语音、让流量消失、在线钢琴等

    基于nodejs+mysql实现的仿京东商城项目

    mysql 【作品名称】:基于nodejs+mysql实现的仿京东商城项目 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 前端架构 页面结构(H5,CSS3,原生JS) 框架(基于Vue脚手架:vue-cli)进行搭建 数据请求处理框架(Axios) Vue-Router进行路由处理 Vue-LazyLoad进行图片赖加载 服务端架构 选用NodeJs进行后台开发 Express中间件进行服务的配置,路由、请求的处理 Mysql中间件处理与数据库的"通信" Body-Parser中间件进行前端请求参数的获取 Cookie-Parser、Cookie-Session进行cookie与session的处理 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。

    基于jsp+sqlserver 实现的网上超市系统毕业设计(源代码+论文)

    【作品名称】:基于jsp+sqlserver 实现的网上超市系统【毕业设计】(源代码+论文) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 结构特性设计 本节主要介绍后台数据库的结构设计。结构设计是继需求分析后的重要阶段,是数据库设计的重要组成部分。如果说需求分析是解决“做什么”的问题,那么结构设计就是解决“怎么做”的第一步。下面给出基本的数据结构。 1. 管理员信息表:主要记载管理员的自然信息(序号、用户名、密码、权限 )。 2. 会员信息表:主要记载会员的自然信息(序号、用户名、密码、用户姓名、身份证号、联系方式、模拟货币、剩余货币 ) 3. 货品类别信息表:主要记载货品类别的自然信息(序号、名称 ) 4. 库存物品信息表:主要记载货品库存的自然信息(序号、物品类别、物品名称 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。

    ASP网络商城的设计与实现(源代码+论文).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 、可私信博6主看论文后选择购买源代码。

    基于Unity 3D引擎开发、键盘控制的简单小游戏.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    塔防游戏(defense.apk为Android平台安装包).zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    采用瞬时功率理论的 UPQC 控制(pq 方法)simulink.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    ASP政府采购管理信息系统(源代码+论文).zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。

    Python是一种高级的、动态类型的编程语言.docx

    Python是一种高级的、动态类型的编程语言,其设计注重代码的可读性和简洁性。以下是对Python的详细介绍: 一、基本概述 中文名:Python 创始人:吉多·范罗苏姆(Guido van Rossum) 首次发布时间:1991年(Python 0.9.0) 主要版本:Python 2.0(2000年发布)、Python 3.0(2008年发布,为主要修订版) 语言特性:解释型、高级、通用编程语言 二、主要特点 简单易学:Python的语法简洁明了,易于理解和学习。其设计哲学强调代码的可读性和简洁的语法,使得编程变得更加直观和简单。 面向对象:Python既支持面向过程的编程也支持面向对象的编程。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起的,这有助于提高代码的可重用性和可维护性。 可移植性:Python是开源的,因此已经被移植在许多平台上,包括Linux、Windows、macOS等。这使得Python程序可以在不同的操作系统上运行,提高了开发的便利性和灵活性。 解释性:Python是一种解释型语言,编写的程序不需要编译成二进制代码,而是可以直接从源代码执行。Pyt

    2021年网页设计大赛.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。

    基于java的咖啡厅管理系统设计与实现.docx

    基于java的咖啡厅管理系统设计与实现.docx

    ISO15118-1-2019 英文原版+中文翻译.zip

    英文标准与中文翻译

Global site tag (gtag.js) - Google Analytics