java零基础 私有云平台 springcloud 服务注册中心 leetcodeLCP unity redis常用语句 count scrapy 建造师报考条件 vue的钩子函数 nodejs视频教程 mysql降序 mysql查询 python随机函数 安装python教程 python中的zip python零基础 java实战 java实现 java方法的重载 javapattern java的基本数据类型 java安装与配置 php实例 网页游戏代码 莫莫小工具 音频频谱分析软件 rndis驱动下载 思源黑体cn 免费脚本 生存猎人属性 中维高清监控系统安装 java获取时间戳 pr怎么放大视频画面 maven项目打包 pr书写效果 粉碎文件工具 免费ftp空间 商标查询软件
当前位置: 首页 > 学习教程  > 编程语言

Java的几个常见算法

2020/7/24 9:31:44 文章标签:

作为一个编程新手,开始学习java的时候跟着视频写了点算法,在写算法之前,首先应该搞清楚每个算法的基本原理

  • 冒泡排序
    首先我们需要知道冒泡排序是一种稳定的排序算法。这个算法每次进行比较的时候都会输出一个最大或最小值,在这里我们首先假设一下需要排序的一组数为45,39,78,64,35,72。假设我们需要按照从小到大的顺序进行排序,每次比较输出一个最大值。
    代码如下:

int[] nums={45,39,78,64,35,72}; // 待排序的数列
int len=nums.length; //新建一个变量用于存储数组的长度,这样可以提高性能
for(int i=0;i<len-1;i++){ //比较的趟数
for(int j=0;j<len-i-1;j++){ //每趟比较的次数
if(nums[j]>nums[j+1]){ //若前一个数比后一个数大,就交换
nums[j]=nums[j]+nums[j+1];
nums[j+1]=nums[j]-nums[j+1];
nums[j]=nums[j]-nums[j+1];
}
}
}
for(int n:nums){ //用foreach循环输出排序后的数组
System.out.print(n+"\t"); // 这里输出时应该是print,而不是println, \t的作用相当于电脑键盘的tab键
}
System.out.println();

显示结果
在这里插入图片描述

  • 二分查找
    二分查找的原理就是在已经排好序的数组中,通过将待查找的元素与中间索引值对应的元素进行比较,若大于中间索引值对应的元素,去右半部分查找,否则,去左半部分查找,以此类推,直到找到为止,找不到返回一个负数。
    代码如下:

int[] nums={25,39,48,64,75,92}; // 待排序的数列
int index=binarySort(nums,75); //要查找的数字
System.out.println(index);
}
//二分查找算法
public static int binarySort(int[] nums,int key){
int start=0; //开始下标
int end=nums.length-1; //结束下标
while(start<=end){
int mid=(start+end)/2;
if(nums[mid]>key){
end=mid-1;
}else if(nums[mid]<key){
start=mid+1;
}else{
return mid;
}
}
return -1;
}

显示结果:
在这里插入图片描述

  • 插入排序
    插入算法的原则是每步将一个待排序的记录,按其顺序码插入到前面已经排序的子序列的合适位置,知道全部插入排序完为止。
    代码如下:

int[] nums={45,39,78,64,35,72}; // 待排序的数列
for(int i=1;i<nums.length;i++){ //控制排序的趟数
int temp=nums[i]; //记录操作数
int j=0;
for(j=i-1;j>=0;j–){
if(nums[j]>temp){
nums[j+1]=nums[j];
}else{
break;
}
}
if(nums[j+1]!=temp){
nums[j+1]=temp;
}
}
//输出结果
for(int n:nums){
System.out.print(n+"\t");
}
System.out.println();

显示效果:

在这里插入图片描述


本文链接: http://www.dtmao.cc/news_show_50108.shtml

附件下载

上一篇:ES6 箭头函数

下一篇:波澜网站记录

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?