常见排序——Java实现
1 package struct;
2
3 /**
4 *
5 * @作者:dyy
6 * @公司:陕西科技大学
7 * @修改日期:
8 * @邮箱:1101632375@qq.com
9 * @描述:Java实现几种常见排序
10 */
11
12
13 //选择排序类
14 class SelectSort{
15 public void selectSort(int[] arr){
16 for(int i = 0;i < arr.length; i++){
17 int currentMax = i;//记录当前的最大值下标
18 for(int j = i + 1;j < arr.length;j++){
19 //找到最大值下标
20 if(arr[j] > arr[currentMax]){
21 currentMax = j;
22 }
23 }
24 int temp = arr[i];
25 arr[i] = arr[currentMax];
26 arr[currentMax] = temp;
27 }
28 }
29 public void print(int[] arr){
30 for(int i = 0;i<arr.length;i++){
31 System.out.print(arr[i]+" ");
32 }
33 }
34 }
35
36
37 //冒泡排序类
38 class BubbleSort{
39 //冒泡排序的实现
40 public void bubbleSort(int[] arr){
41 for(int i = 0;i < arr.length - 1;i++){
42 for(int j = 0;j < arr.length - 1 - i;j++){
43 if(arr[j] < arr[j+1]){
44 int temp = arr[j];
45 arr[j] = arr[j+1];
46 arr[j+1] = temp;
47 }
48 }
49 }
50 }
51 //打印数组
52 public void print(int[] a){
53 for(int i =0 ;i<a.length;i++){
54 System.out.print(a[i]+" ");
55 }
56 }
57 }
58
59
60 //插入排序
61 class InsertSort{
62 public void insertSort(int[] arr){
63 for(int i = 0; i < arr.length - 1;i++){
64 //将第一个元素当作排好序的
65 int j;
66 int insert = arr[i];
67 for(j = i;j > 0 && insert>arr[j-1];j--){
68 arr[j] = arr[j-1];
69 }
70 arr[j] = insert;
71 }
72 }
73
74 //打印数组
75 public void print(int[] a){
76 for(int i =0 ;i<a.length;i++){
77 System.out.print(a[i]+" ");
78 }
79 }
80 }
1 public class TestVeriousSort {
2 public static void main(String[] args) {
3 int[] arr1 = {13,2,6,34,1,4,9,7,5};
4 //选择排序
5 System.out.println("选择排序"+"\n");
6 SelectSort obj = new SelectSort();
7 System.out.println("初始的数组:");
8 obj.print(arr1);
9 System.out.println("\n"+"排序后的数组:");
10 obj.selectSort(arr1);
11 obj.print(arr1);
12
13 //冒泡排序
14 System.out.println("\n"+"冒泡排序"+"\n");
15 BubbleSort obj1 = new BubbleSort();
16 System.out.println("初始的数组:");
17 obj1.print(arr1);
18 System.out.println("\n"+"排序后的数组:");
19 obj1.bubbleSort(arr1);
20 obj1.print(arr1);
21
22 //插入排序
23 System.out.println("\n"+"冒泡排序"+"\n");
24 InsertSort obj2 = new InsertSort();
25 System.out.println("初始的数组:");
26 obj2.print(arr1);
27 System.out.println("\n"+"排序后的数组:");
28 obj2.insertSort(arr1);
29 obj2.print(arr1);
30 }
31 }
常见排序——Java实现的更多相关文章
- 常见排序java实现
public class Sort { public static void main(String[] args) { int[] data = {49,38,65,97,76,13,27,49}; ...
- 常见排序算法(附java代码)
常见排序算法与java实现 一.选择排序(SelectSort) 基本原理:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录与第一个记录的位置进行交换:接着对不包括第一个记录以外的其他 ...
- 常见排序算法总结 -- java实现
常见排序算法总结 -- java实现 排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间 ...
- Java基础-数组常见排序方式
Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特 ...
- 常见排序算法题(java版)
常见排序算法题(java版) //插入排序: package org.rut.util.algorithm.support; import org.rut.util.algorithm.Sor ...
- Java基础语法(8)-数组中的常见排序算法
title: Java基础语法(8)-数组中的常见排序算法 blog: CSDN data: Java学习路线及视频 1.基本概念 排序: 是计算机程序设计中的一项重要操作,其功能是指一个数据元素集合 ...
- 常见排序算法(java实现)
常见排序算法介绍 冒泡排序 代码: public class BubbleSort { public static void sort(int[] array) { int tValue; for ( ...
- 一些常见的Java面试题 & 面试感悟
< 前言 > 近期在面试,深感这个行业的浮躁,一些菜不辣基的弱鸡开出的工资待遇要求,超过了我.不知道他们是怎么拿到那么高的工资的,难道是他在公司有亲戚朋友吗?有后台吗?是行业热钱真的过多了 ...
- 最常见的Java面试题及答案汇总(三)
上一篇:最常见的Java面试题及答案汇总(二) 多线程 35. 并行和并发有什么区别? 并行是指两个或者多个事件在同一时刻发生:而并发是指两个或多个事件在同一时间间隔发生. 并行是在不同实体上的多个事 ...
随机推荐
- ONVIF协议客户端
前几天跟大家聊了一些关于ONVIF的一些基础知识,它的工作原理以及优势.今天安徽思蔷信息科技为带大家了解一下simpleonvif 百度云盘下载地址:链接:https://pan.baidu.com/ ...
- springboot注解之容器功能
添加组件 @Configuration.@Bean //以swagger为例 @Configuration(proxyBeanMethods = false) @EnableSwagger2 //使用 ...
- vue引入elementUI(第三方样式库)
前置: 在已经安装好vue的前提下 ,没有安装vue参考: vue搭建教程 elementUI官网组件使用文档: elementUI使用文档 1.终端直接运行安装命令 npm i element-ui ...
- Linux usb 3. Host 详解
文章目录 1. 简介 2. Usb Core 驱动设备模型 2.1 Usb Device Layer 2.1.1 device (struct usb_device) 2.1.2 driver (st ...
- vue3 学习笔记 (二)——axios 的使用有变化吗?
本篇文章主要目的就是想告诉我身边,正在学 vue3 或者 准备学 vue3 的同学,vue3中网络请求axios该如何使用,防止接触了一点点 vue3 的同学会有个疑问?生命周期.router .vu ...
- UDP端口检查告警SHELL脚本(企业微信版机器人版)
脚本准备 0Batch_Check.sh 1port_check.sh 2wechat_bot_alert.sh CheckList CheckList #支持大/小写 10.1.1.5 Udp 53 ...
- K8S核心概念之SVC(易混淆难理解知识点总结)
本文将结合实际工作当中遇到的一些问题和情况来解析SVC的作用以及一些比较易混淆和难理解的概念,方便日后工作用到或者遗忘时可以直接在自己曾经学习总结的博客当中直接查找到. 首先应该清楚SVC的作用是什么 ...
- 双非本科进大疆(SP)!
哈喽,大家好,我是仲一.今天和大家分享的是一位优秀双非本科生上岸大疆的经历(羡慕哭了...). 今年4月底的时候,这位学弟和我分享了他拿下oppo,京东,联发科实习offer的经历,当时我还发了朋友圈 ...
- [nowcoder5671D]Data structure
问题相当于统计$且\sum_{l\le x<y\le r且lca(x,y)=x}1=c(sz[x],2)-\sum_{son}c(sz[son],2)$,考虑用莫队来维护区间,那么相当于要支持: ...
- 分布式事务(七)之Seata简介
在前面的文章中,我们介绍了分布式事务的概念以及一些解决方案.fenSeata是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata将为用户提供了AT.TCC.SAGA和 ...