import java.util.Arrays;
/**
* 排序程序
* @author VINCENT
*
*/
public class SortTest {
public static void main(String[] args) {
int[] arr = { 2, 1, 44, 4, -5, 106, 79, 45, -9, 0 };
System.out.println("Arrays的静态方法sort()排序:");
arraysSort(arr);
System.out.println("\n冒泡排序:");
maoPao(arr);
System.out.println("\n选择排序:");
xuanZePaiXu(arr);
System.out.println("\n插入排序:");
chaRu(arr);
System.out.println("\n希尔排序:");
shell(arr);
}
// 希尔排序
public static void shell(int[] arr) {
// 分组
for (int increment = arr.length / 2; increment > 0; increment /= 2) {
// 每个组内排序
for (int i = increment; i < arr.length; i++) {
int temp = arr[i];
int j = 0;
for (j = i; j >= increment; j -= increment) {
if (temp < arr[j - increment]) {
arr[j] = arr[j - increment];
} else {
break;
}
}
arr[j] = temp;
}
}
for (int i : arr) {
System.out.print(i + " ");
}
}
// 插入排序
public static void chaRu(int[] arr) {
for (int i = 1; i < arr.length; i++) {// i从一开始,因为第一个数已经是排好序的啦
for (int j = i; j > 0; j--) {
if (arr[j] < arr[j - 1]) {
int temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
}
for (int i : arr) {
System.out.print(i + " ");
}
}
// 选择排序
public static void xuanZePaiXu(int[] arr) {
for (int i = 0; i < arr.length; i++) {
int lowerIndex = i;
// 找出最小的一个索引
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[lowerIndex]) {
lowerIndex = j;
}
}
// 交换
int temp = arr[i];
arr[i] = arr[lowerIndex];
arr[lowerIndex] = temp;
}
for (int i : arr) {
System.out.print(i + " ");
}
}
// Arrays的静态方法sort()排序
public static void arraysSort(int[] arr) {
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
// 冒泡排序
public static void maoPao(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
分享到:
相关推荐
以上就是Java中常用的几种数组排序算法及其实现。每种排序算法都有其特定的适用场景和性能特点,理解并掌握这些排序算法有助于我们在实际编程中选择合适的排序方法,提高程序的效率。在实际应用中,还可以考虑使用...
根据给定文件的信息,本文将详细介绍Java中几种常见的数组排序算法,包括插入排序、交换排序、选择排序、归并排序以及基数排序等,并探讨不同排序方法的应用场景。 ### 一、插入排序 #### 1. 直接插入排序 直接...
数组初始化有几种方式: 1. 静态初始化:在声明时直接赋值,如`int[] numbers = {1, 2, 3, 4, 5};` 2. 动态初始化:只指定数组长度,如`int[] numbers = new int[5];`,之后可以单独为每个元素赋值。 三、访问数组...
2. **Runnable接口**:另一种创建线程的方式是实现`java.lang.Runnable`接口,将`run()`方法放入实现类中,然后将实例传递给`Thread`类的构造函数。 3. **守护线程和用户线程**:Java区分两种类型的线程——用户...
描述中的程序实现了快速排序法,可能是用一种编程语言如C++、Java或Python编写的,用于对一维数组进行排序。这种程序的实现一般包括上述的三个主要步骤,并可能包含优化措施,例如处理小数组时改用插入排序,或者...
以上就是针对"随机数排序_20个随机数_数组排序_源码"这一主题的关键知识点,涵盖了随机数生成、数组操作、排序算法及其性能、源码分析等方面。理解这些概念对于提升编程技能和解决问题能力非常有帮助。
本文将深入探讨几种常见的数组排序算法,包括插入排序、交换排序、选择排序和归并排序,以及基数排序。这些算法在不同的场景下有不同的效率表现,选择合适的排序方法对程序性能有着显著影响。 1. 插入排序: 插入...
在Java中,查找数组中的特定元素有以下几种常见方法: 1. **线性查找(Linear Search)**:遍历整个数组,逐一比较目标值与数组元素,直到找到匹配项或遍历完数组。 2. **二分查找(Binary Search)**:适用于有序...
本篇文章将深入探讨数组的几种常见排序方法,包括冒泡排序、选择排序和插入排序,这些都是基础且实用的排序算法,对于理解更复杂的排序算法有着重要的铺垫作用。 ### 冒泡排序 冒泡排序是一种简单直观的排序算法。...
在Java编程语言中,数组是一种特殊的数据结构,用于存储同类型元素的集合。它们提供了一种方式来组织和管理大量数据,使得我们可以高效地访问和操作这些数据。本章将深入探讨数组的基本概念、定义以及如何在实际编程...
### Java 实现几种常见排序方法 #### 泡泡排序(Bubble Sort) ...以上是几种常见的排序算法在 Java 中的具体实现,每种算法都有其特点和适用场景。在实际应用中可以根据具体需求选择最合适的排序算法。
在Java编程中,面对"数组排序后拿出最大的几个数,并且取它们的下标,包括数组元素相同的情况"这样的需求,我们需要使用特定的算法来处理。这个问题可以通过多种方法解决,这里我们将详细介绍一种常见且有效的方法:...
总结来说,从n个数组中取出所有排列组合的Java实现涉及到递归算法、回溯法以及数据结构的操作。理解这些概念并能够熟练运用是成为一名优秀程序员的关键。通过这个例子,我们可以看到如何利用Java的灵活性和表达力来...
【Java 数组排序算法详解】 在 Java 中,有多种排序算法可以用来对数组进行排序,这些算法根据不同的工作原理和效率被分为不同的类别。本文将详细介绍以下几种排序算法:插入排序、交换排序、选择排序、归并排序...
### 数组排序(Java代码) #### 一、冒泡排序算法概述 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较两个相邻元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到...
本文将详细介绍几种常见的排序算法及其Java实现,同时也会涉及二叉树的基本概念和实现。 首先,让我们从最简单的排序算法开始。冒泡排序是一种基础的交换排序方法,它通过重复遍历待排序的数组,依次比较相邻元素并...
上述文件中的几个数组练习涵盖了数组定义、初始化、遍历、复制和排序等基本操作。 1. **数组定义和创建**: 在Java中,数组通过`类型[] 名称`的形式定义。例如,`int arr[]`定义了一个整型数组。数组的创建是通过`...
根据给定的信息,本文将详细介绍Java中的四种基本排序算法:冒泡排序、插入排序、快速排序和选择排序。 ### 一、冒泡排序 #### 1. 原理介绍 冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两...