概述
选择排序
public class Demo5 {
public static void main(String[] args) {
//基本逻辑:外层循环确定一个位置
//内层循环确定该位置的值(当前最小值)
int[] a = new int [10];
for (int i = 0; i < a.length; i++) {
a[i]=(int)(Math.random()*100);
}
System.out.println(Arrays.toString(a));
// for (int i = 0; i < a.length-1; i++) {如果前面的数都确定位置了,最后一位数就不需要比较了,所以遍历的长度为a.length-1
// int tmp=a[i];//确定位置
// int p=i;
// for (int j = i+1; j < a.length; j++) {
// if(tmp>a[j]){
// tmp=a[j];
// p=j;
// }
// }
// a[p]=a[i];
// a[i]=tmp;
// }
for (int i = 0; i < a.length-1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
System.out.println(Arrays.toString(a));
}
}
插入排序
public class Demo6 {
public static void main(String[] args) {
int[] a = new int [10];
for (int i = 0; i < a.length; i++) {
a[i]=(int)(Math.random()*100);
}
System.out.println(Arrays.toString(a));
for (int i = 1; i < a.length; i++) {
int tmp=a[i];
boolean isInsert=false;
for (int j = i-1; j >=0 ; j--) {
if(a[j]>tmp){
a[j+1]=a[j];
}else{
isInsert=true;
a[j+1]=tmp;
break;
}
}
if(!isInsert){
a[0]=tmp;
}
}
System.out.println(Arrays.toString(a));
}
}
冒泡排序
public class Demo1 {
public static void main(String[] args) {
//1、从前向后遍历
//2、相邻两数比较,不满足顺序则交换
int[] a =new int[10];
for (int i = 0; i < a.length; i++) {
a[i]=(int)(Math.random()*100);
}
System.out.println(Arrays.toString(a));
for (int i = 0; i <a.length-1 ; i++) {//比较第几轮
boolean isChanged=false;
for (int j = 0; j <a.length-1-i ; j++) {//每一轮比上轮少比一次
if(a[j]>a[j+1]){
isChanged=true;
int tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
System.out.println("经过第"+(i+1)+"轮,数组变为:n"+Arrays.toString(a));
if(!isChanged) {
System.out.println("不需要排序");
break;
}
}
System.out.println(Arrays.toString(a));
}
}
最后
以上就是昏睡耳机为你收集整理的java——简单算法合集的全部内容,希望文章能够帮你解决java——简单算法合集所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复