JavaSE - 排序算法
时间:2022-07-22
本文章向大家介绍JavaSE - 排序算法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
数组与排序
杨辉三角
Scanner m = new Scanner(System.in);
int s = m.nextInt();
int[][] str = new int[s][s];
for (int i=0;i<str.length;i++){
for (int j = 0;j<=i;j++){
if(j == 0||j==i){
str[i][j] = 1;
}
else{
str[i][j] = str[i-1][j]+str[i-1][j-1];
}
}
}
//点睛之笔 j<=i ----> 解决了数组的列会越界的问题
for (int i = 0;i < str.length;i++){
for (int j=0;j<=i;j++){
System.out.print(str[i][j]+" ");
}
System.out.println();
}
}
二分查找
前提是数组有序
static
int BinarySearch(int[] arr, int ele) {
int minIndex = 0;
int maxIndex = arr.length - 1;
int centerIndex = (minIndex + maxIndex) / 2;
while (minIndex <= maxIndex) {
if (ele == arr[centerIndex]) {
return centerIndex;
} else if (ele > arr[centerIndex]) {
minIndex = centerIndex + 1;
} else {
maxIndex = centerIndex - 1;
}
centerIndex = (minIndex + maxIndex) / 2;
}
return -1;
}
冒泡排序
package com.sukai;
import java.util.Arrays;
/**
* 解决冒泡排序算法
*/
public class Main {
private static int[] arr = {4,3,2,1,7,5,6};
public static void change(int a,int b){
int temp = 0;
temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
public static void main(String[] args) {
for (int i = 0;i < arr.length;i++){
for (int j = 0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]) {
change(j, j + 1);
}
}
}
//使用Arrays.toString()方法
// for (int i = 0;i<arr.length;i++)
// System.out.println(arr[i]);
System.out.println(Arrays.toString(arr));
}
}
选择排序
public class Main {
public static void FastSort() {
int[] arr = {4, 3, 2, 5, 7, 6, 8};
for (int i = 0; i < arr.length; i++) {
int pos = 0;
for (int j = 1; j < arr.length-i; j++) {
if (arr[pos] < arr[j]) {
pos = j;
}
}
int temp = 0;
temp = arr[pos];
arr[pos] = arr[arr.length-i-1];
arr[arr.length-i-1] = temp;
}
System.out.println(Arrays.toString(arr));
}
public static void main(String[] args)
{
Main.FastSort();
}
}
插入排序
public void Select_Sort(){
int[] array = new int[]{2,7,6,4,8,5,3};
for(int i = 1;i<array.length;i++){
int pos = array[i];
for(int j=i;j>0;--j){
if(array[j-1]>array[j]){
array[j] = array[j-1];
array[j-1] = pos;
}else{
array[j] = pos;
break;
}
}
}
System.out.print(Arrays.toString(array));
}
快速排序
public static void quickSort(int[] arr,int low,int high){
if(low>high){
return;
}
int t;
int i = low;
int j = high;
//temp就是基准位
int temp = arr[low];
while (i<j) {
while (temp<=arr[j]&&i<j) {
j--; }
while (temp>=arr[i]&&i<j) {
i++; }
if (i<j) {
t = arr[j]; arr[j] = arr[i]; arr[i] = t;
}
}
arr[low] = arr[i];
arr[i] = temp;
quickSort(arr, low, j-1);
quickSort(arr, j+1, high);
- VUE 入门基础(6)
- 五年换4高管,6000员工裁95%剩300人,王健林为何抛弃万达网科?
- Android Permission中英对照
- 你知道人脸识别技术是如何实现的吗?
- WordPress REST API 定制化输出
- ASP.NET MVC的Action Filter
- Android LayoutInflater详解
- 在Android中实现service动态更新UI界面
- VUE 入门基础(5)
- Android的UI设计与后台线程交互
- 更强悍的Silverlight: WCF RIA Services
- Java究竟该怎么学?文末有彩蛋!
- python-IDLE清屏和标记行数,其他推荐
- 从0到1:PostCSS 插件开发最佳实践
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Springboot读取自定义属性之集合(list,数组)
- 被遗忘的 10 个Linux命令,很实用!
- Nginx配置中一个不起眼字符"/"的巨大作用,失之毫厘谬以千里
- 当一个http请求来临时,SpringMVC究竟偷偷帮你做了什么?SpringMVC视图处理器与视图篇章【终章】
- 求求你,别再开发的时候一用redis分布式锁,就急着去复制粘贴了!lua脚本的实现思路
- 全网最详细的 K8s Service 不能访问排查流程
- 团体程序设计天梯赛-练习集 L1-001 Hello World
- 团体程序设计天梯赛-练习集 L1-002 打印沙漏
- 团体程序设计天梯赛-练习集 L1-003 个位数统计
- 团体程序设计天梯赛-练习集 L1-004 计算摄氏温度
- 团体程序设计天梯赛-练习集 L1-007 念数字
- 团体程序设计天梯赛-练习集 L1-008 求整数段和
- K8s多租户场景下的多层级namespace规则解析
- 团体程序设计天梯赛-练习集 L1-010 比较大小
- 团体程序设计天梯赛-练习集 L1-012 计算指数