学java要算法吗_学习java不可不知的几种算法

1、冒泡排序算法:编程语言算法中比较经典的算法。每个程序员都必须了解和会运用的。

1cd514375d064d1f1860acbe310f94cf.pngAAA软件教育

程序算法基础

通过多次比较(相邻两个数)和交换来实现排序:

public class bubble {

public static void bubbleSort(int[] a) {

int temp;

for (int i = 1; i < a.length; i++) {

//将相邻两个数进行比较,较大的数往后冒泡

for (int j = 0; j < a.length - i; j++) {

if (a[j] > a[j + 1]) {

//交换相邻两个数

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

}

}

public static void main(String[] args) {

int[] mao= {213,123,342,543,12,67,98,320,421,4,15,54,27,34,17};

System.out.print("排序前的数组为:\n"); //输出排序前的数组

for(int i=0;i

{

System.out.print(mao[i]+" ");

}

System.out.print("\n");

bubbleSort(mao); //排序操作

System.out.print("排序后的数组为:\n");

for(int i=0;i

{

System.out.print(mao[i]+" "); //输出排序后的数组

}

System.out.print("\n");

}

}

2、直接插入排序

通过对未排序的数据执行逐个插入至合适的位置而完成排序

public class straight{

public static void straightInsertion(int[] arr) {

int current;//要插入的数

//从1开始第一次一个数不需要排序

for (int i = 1; i < arr.length; i++) {

current = arr[i];

int j = i - 1; //序列元素个数

//从后往前循环,将大于当前插入数的向后移动

while (j >= 0 && arr[j] > current) {

arr[j + 1] = arr[j]; //元素向后移动

j--;

}

arr[j + 1] = current; //找到位置,插入当前元素

}

}

}

3、快速选择排序

通过多次比较和交换来实现排序。首先设定一个分界值,将所有数值与分界值比较,左小右大,比较和交换数据值进而完成排序

public class quick{

static void quickSort(int[] arr,int left,int right) {

int f,t,rtemp,ltemp;

ltemp=left;

rtemp=right;

f=arr[(left+right)/2]; //分界值

while(ltemp

{

while(arr[ltemp]

{

++ltemp;

}

while(arr[rtemp]>f)

{

--rtemp;

}

if(ltemp<=rtemp)

{

t=arr[ltemp];

arr[ltemp]=arr[rtemp];

arr[rtemp]=t;

rtemp--;

ltemp++;

}

}

if(left

{

quickSort(arr,left,ltemp-1); //递归调用

}

if(ltemp

{

quickSort(arr,rtemp+1,right); //递归调用

}

}

}

4、希尔排序,又称Shell排序或缩小增量排序

(1)将有n个元素的数组分成n/2个数字序列,第1个数据和第n/2+1个数据为一对。

(2)一次循环使每一个序列对排好顺序。

(3)然后,再变为n/4个序列,再次排序。

(4)不断重复上述过程,随着序列减少最后变为一个,也就完成了整个排序。

代码如下:public class shell{

static void shellSort(int[] a){

int h,temp,x=0;

for(int r=a.length/2;r>=1;r/= 2) //划组排序

{

for(int i=r;i

{

temp=a[i];

int j=i-r;

while(j>=0 && temp

{

a[j+r]=a[j];

j-=r;

}

a[j+r]=temp;

}

x++;

}

}

}

5、堆排序:构造堆结构、堆排序输出来实现排序

public class pratice {

public static void heapSort(int a[],int n)

{

int i,j,h,k;

int t;

for(i=n/2-1;i>=0;i--) //将a[0,n-1]建成大根堆

{

while(2*i+1

{

j=2*i+1 ;

if((j+1)

{

if(a[j]

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

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

相关文章

IntelliJ IDEA 2020 数据库连接Oracle和Mysql

Mysql数据库连接 填写下面需求要的信息url需要处理 jdbc:mysql://127.0.0.1:3306/xxxdatabase?autoReconnecttrue&useUnicodetrue&characterEncodingutf8&zeroDateTimeBehaviorCONVERT_TO_NULL&useSSLfalse&serverTimezoneCTT&nullCatalogMeansCurr…

i 智慧 | 计算产业发展黄金10年 腾讯云弹性计算抢占计算蓝海

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘丹出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;近年来&#xff0c;随着云计算如火如荼的发展&#xff0c;上云已经成为当前企业发展的必然选择。在云计算领域里&#xff0c;计算是最大颗粒度的产品&…

深入探访支付宝双11十年路,技术凿穿焦虑与想象极限

小蚂蚁说&#xff1a; 双11十年间&#xff0c;交易规模的指数级增长不断挑战人们的想象力&#xff0c;而对蚂蚁技术团队来说&#xff0c;这不仅是一场消费盛宴&#xff0c;而是无数次濒临压力和焦虑极限的体验&#xff0c;更是技术的练兵场。如今双11对蚂蚁金服而言&#xff0…

IntelliJ IDEA 2020 快捷键私人订制

文章目录一、 快捷键总览二、 快捷键风格三、 自定义快捷键3.1. 全局替换3.2. 查找和替换3.3. 文件重命名一、 快捷键总览 快捷键说明关键词CTRLALTT光标定位到这段代码&#xff0c;常用的函数如try等等按2下Shirft瞬间查找文件夹或者文件CtrlAltS打开设置SettingsAlt/自动提示…

防水耐脏,超大容量双肩包,限时拼团仅需49元

男人出门有三宝&#xff0c;钱包、手机和电脑。自从有了支付宝&#xff0c;大家钱包都懒得带了但是电脑&#xff0c;尤其是作为一位007的程序员电脑就是我们的命&#xff0c;上班下班都得带着有时上班可能还要再配一个耳机或者保温杯。能放下这么多的东西又美观的只有双肩包。那…

阿里开源首个深度学习框架 X-Deep Learning!

刚刚&#xff0c;阿里妈妈正式对外发布了X-Deep Learning(下文简称XDL)的开源代码地址&#xff0c;开发者们可以在Github上自主下载。 此前&#xff0c;在11月底&#xff0c;阿里妈妈就公布了这项开源计划&#xff0c;引来了业界的广泛关注。XDL突破了现有深度学习开源框架大都…

离职阿里三年后,他又回来了

11月22日&#xff0c;马辉从黄龙体育中心附近的办公室开车来到阿里园区北2门&#xff0c;离开阿里三年后&#xff0c;马辉和1000多名已经毕业的“校友”又回到了这个梦想启程的地方。 在校友会现场&#xff0c;马辉分享了自己的公益故事。 1991年&#xff0c;大眼睛女孩苏明娟…

腾讯花85亿买岛;微信发原图或泄露位置信息?高通逼因特尔把Modem芯片业务卖给苹果?小米9官网正式下架……...

关注并标星星CSDN云计算 速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周两次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go goFujifilm为X-T3增添机械云台功摄模块&#xff08;…

云栖专辑 | 阿里开发者们的第4个感悟:自驱是最好的进步方式

2015年12月20日&#xff0c;云栖社区上线。2018年12月20日&#xff0c;云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来&#xff0c;寒冬中&#xff0c;最值得投资的是学习&#xff0c;是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的…

【建议珍藏系列】如果你这样回答「什么是线程安全」,面试官都会对你刮目相看!...

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 陈树义责编 | 阿秃不是线程的安全面试官问&#xff1a;“什么是线程安全”&#xff0c;如果你不能很好的回答&#xff0c;那就请往下看吧。论语中有句话叫“学而优则仕”&#xff0c;相信很多人都觉得是“学习好了可以做官”…

阿里开发者们的第5个感悟:听话,出活

2015年12月20日&#xff0c;云栖社区上线。2018年12月20日&#xff0c;云栖社区3岁。 阿里巴巴常说“晴天修屋顶”。 在我们看来&#xff0c;寒冬中&#xff0c;最值得投资的是学习&#xff0c;是增厚的知识储备。 所以社区特别制作了这个专辑——分享给开发者们20个弥足珍贵的…

bash: vue: command not found

安装Vuecli正常 npm install -g vue/cli查看vue版本&#xff0c;抛出bash: vue: command not found vue --version解决方案1&#xff1a; 在这个目录下面执行命令正常&#xff0c; 那就配置环境变量即可

机器学习与数据科学决策树指南

还在为如何抉择而感到纠结吗&#xff1f;快采用决策树&#xff08;Decision Tree&#xff09;算法帮你做出决定吧。决策树是一类非常强大的机器学习模型&#xff0c;具有高度可解释的同时&#xff0c;在许多任务中也有很高的精度。决策树在机器学习模型领域的特殊之处在于其信息…

腾讯安全全面出击:双十一不该成为黑产的狂欢

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 刘丹出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;根据CNCERT/CC国家互联网应急中心资料报告显示&#xff1a;中国遭受DDoS攻击仅次于美国排名第二&#xff0c;在遭受攻击的行业中&#xff0c;电子商务…

Linux环境 Oracle 监听和服务 日常操作

文章目录一、Oracle监听1.1. 查看Oracle监听运行状态1.2. 启动Oracle监听1.3. 关闭监听器二、Oracle 服务2.1. 以SYS用户身份登录Oracle2.2. 切换用户至sys2.3. 启动Oracle实例2.4. 停止Oeacle实例运行一、Oracle监听 操作声明&#xff1a;登录服务器&#xff0c;切换到oracle…

五分钟教你如何用函数计算部署钉钉群发机器人

如果你是钉钉多个群的管理员&#xff0c;想要在多个钉钉群群发消息的时候&#xff0c;是不是还在为要寻找所有的群&#xff0c;并不断的复制黏贴消息而烦恼&#xff1f; 过去的你&#xff1a;(N 个群&#xff0c;N 次操作) 现在的你&#xff1a;(N 个群&#xff0c;1 次操作) …

php原生态三级联动_ajax php实现三级联动的方法

ajax php实现三级联动的方法发布时间&#xff1a;2020-08-19 09:34:43来源&#xff1a;亿速云阅读&#xff1a;106作者&#xff1a;小新小编给大家分享一下ajax php实现三级联动的方法&#xff0c;希望大家阅读完这篇文章后大所收获&#xff0c;下面让我们一起去探讨吧&#xf…

使用Terraform创建托管版Kubernetes

目前&#xff0c;阿里云容器服务已经可以创建托管版 Kubernetes 集群了。相比于默认的 Kubernetes 集群&#xff0c;托管版本会主动替您运维一套高可用的 Master 组件&#xff0c;免去了默认版本集群中三个 Master ECS 节点&#xff0c;从而节约所需的资金成本及维护时的人力成…

确认! Python夺冠,Java“被迫”退出竞争舞台,网友:崩溃!

2019年转眼已经接近尾声&#xff0c;如果盘点下2019年最火的语言&#xff0c;除了Python还能有谁&#xff1f;你心中的王者语言又是谁&#xff1f;这一年Python风光无限这一年JAVA走向右边这一年&#xff0c;我们都很感慨&#xff0c;你呢&#xff1f;关于Python&#xff0c;编…