Java数组常见的几种排序。
public class code2 {
public static void main(String[] args) {
int[] x = {37, 89, 23};
for (int z = 0; z < x.length - 1; z++) {
int minIndex = z;
for (int i = z+1; i < x.length; i++) {
if (x[i] < x[minIndex]) {
minIndex = i;
}
}
if (minIndex != z) {
int tem = x[z];
x[z] = x[minIndex];
x[minIndex] = tem;
}
}
for (int i = 0; i < x.length; i++) {
System.out.println(x[i]);
}
}
}
这串代码是数组中的选择排序,它的原理是:
先假设一个数组中下标为0 的元素为最小的数值,我们通过循环来比较下标为0 的数值与数组中的其它数值进行比较,如果有比他小的数值,那我们就把它的下标赋给我们先前所定义的变量中minIndex
最外层的循环是我们控制在数组中的第几位放什么数值。并且控制我们的轮回的次数,因为有一些已经排好的数值我们就不要重新把他们排序。
下面那个if语句就是把它们之间的位置调换一下,借助一个其他的变量来完成。
1 import java.util.*;
2 public class code3{
3 public static void main(String []args){
4 int []x ={23,34,21,52,56};
5 Arrays.sort(x);
6 for(int i:x){
7 System.out.println(i);
8 }
9
10 }
11
12 }
13 //java中的快速排序
这个是Java语言中的自带的一个快速排序的方法,它原理是,现在一个数组中随意找一个数,以他为衡量,比他大的就放在她的后面,比他小的数就放在她的前面就行了,然后再在的前后的那两个区间随意找一个值作为衡量的标准
以此类推,就行了。这个方法是这几种排序方法中最快的方法。
1 public class code2 {
2 public static void main(String []args){
3 int []a ={15,7,12,2,8,16};(在这里我先定义一个数组)
4 for (int i =0;i<a.length-1;i++){ 这个循环是用来控制数组的排序的轮数的,之所以要减一是因为剩下来的那个数字是自动会排好的。
5 for(int j= 0;j<a.length-1-i;j++){ 而这个是用来控制相连两个数的比较大小的次数,因为有一些的数组已经比好大小了,那我们自然也要把它们给减去,不然重复去交换会使程序效率降低。
6 if(a[j]>a[j+1]) {那个大就把它放在后面,把他们交换位置,这样就完成了。
7 int tem = a[j];
8 a[j] = a[j + 1];
9 a[j + 1] = tem;
10 }
11 }
12 }
13 for(int c :a){
14 System.out.println(c);
15 }
16
17 }
18 }
冒泡排序的工作的原理就是把相连的两个数相互比大小,那个大就把它放在后面,小就放在后面就可以了。
Java数组常见的几种排序。的更多相关文章
- java数组中的三种排序方法中的冒泡排序方法
我记得我大学学java的时候,怎么就是搞不明白这三种排序方法,也一直不会,现在我有发过来学习下这三种方法并记录下来. 首先说说冒泡排序方法:冒泡排序方法就是把数组中的每一个元素进行比较,如果第i个元素 ...
- 十七、Java中数组常见的几种排序方法!
转载自:https://www.cnblogs.com/bekeyuan123/p/6891875.html 数组的定义: // 3种定义方式 int[] arr = new int[5]; int[ ...
- Java中常见的5种WEB服务器介绍
这篇文章主要介绍了Java中常见的5种WEB服务器介绍,它们分别是Tomcat.Resin.JBoss.WebSphere.WebLogic,需要的朋友可以参考下 Web服务器是运行及发布Web应用的 ...
- 用 Java 实现常见的 8 种内部排序算法
一.插入类排序 插入类排序就是在一个有序的序列中,插入一个新的关键字.从而达到新的有序序列.插入排序一般有直接插入排序.折半插入排序和希尔排序. 1. 插入排序 1.1 直接插入排序 /** * 直接 ...
- java数组复制的几种常见用法
1.1数组复制的几种常见用法 1.1.1System.arraycopy的用法 int[] src = {1,3,5,7,9,11,13,15,17}; int[] dest = {2,4,6,8,1 ...
- java中常见的几种Runtimeexception
转自http://blog.csdn.net/qq635785620/article/details/7781026 一般面试中java Exception(runtimeException )是必会 ...
- c语言常见的几种排序方法总结
一:选择排序和冒泡排序 这两种排序比较简单,直接贴出代码: #include <stdio.h> void choose_sort(int *arr, int n); void bubbl ...
- Java 数组声明的几种方式
Java数组定义声明的几种方法: 1. 类型名称[] 变量名=new 类型名称[length]; 2.类型名称[] 变量名={?,?,?}; 3.类型名称[] 变量名=new 类型名称[]{?,?,? ...
- Java数组拷贝的五种方法
在Java中有多种方法可以拷贝一个数组,到另外一个数组. 1.循环拷贝 在循环拷贝方法中,只需要利用i,移动指针即可复制所有数组到arrayB中. for(int i=0;i<arrayA.le ...
- php常见的几种排序以及二分法查找
<?php 1.插入排序 思想: 每次将一个待排序的数据元素插入到前面已经排好序的数列中,使数列依然有序,知道待排序数据元素全部插入完为止. 示例: [初始关键字] [49] 38 65 97 ...
随机推荐
- DevOps平台建设的关键点是什么?
关键还是在人 找到一个「吃过猪肉,见过猪跑的」,你问他什么是猪,他自然比「没吃过猪肉,没见过猪跑的人」更了解猪.海豚海豚,你知道猪是什么样么?它都没上过陆地,这辈子都没见过猪,它哪知道猪是什么样. 有 ...
- 前端三件套系例之JS——JavaScript基础、JavaScript基本数据类型、JavaScript函数
文章目录 1 JavaScript基础 1.JavaScript是什么 2.JavaScript介绍 2-1 ECMAScript和JavaScript的关系 2-2 ECMAScript的历史 3. ...
- AI在人才测评领域的应用情况概述
目录 收起 一.AI技术的通俗理解 二.AI在人才测评领域的应用情况概述 三.AI在构建人才标准上的应用 1.人才标准构建 2.人才画像 3.人岗智能匹配 四.AI在人才测评实施方面的应用 1.AI面 ...
- 普冉PY32系列(九) GPIO模拟和硬件SPI方式驱动无线收发芯片XL2400
目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...
- C++ STL标准容器的特点和典型的使用场景
概念和作用 C++标准模板库(Standard Template Library,STL)提供了一组通用的模板类和函数,用于处理常见的数据结构和算法.STL中的标准容器是其中的重要组成部分,它们提供了 ...
- linux操作系统读写文件操作(c语言)
(一)open系统的调用 为了创建一个新的文件描述,需要使用系统调用open #include<fcntl.h> #include<sys/types.h> #include& ...
- 3种web会话管理的方式(session)
阅读目录 https://www.cnblogs.com/lyzg/p/6067766.html 1. 基于server端session的管理 2. cookie-based的管理方式 3. tok ...
- linux开发基于iMX6ULL-uboot编译环境配置
1.下载半导体官方的uboot和linux内核固件 2.下载uboot 3.下载linux内核(选择5.4版本的分支下载) 下载后如下所示 解压后如下 查看文件夹中的内容 创建一个git仓库然后开始自 ...
- 题解 P4819
前言: 看到目前的题解当中没有并查集做法,于是写一篇水水. 题目描述: 给定一张图,一个图中有黑白两种颜色,已知黑色的点有且只有一个,且每个点是黑色的概率相等,然后点 \(u\) 与点 \(v\) 之 ...
- 31. 干货系列从零用Rust编写正反向代理,HTTP限流的实现(limit_req)
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...