`
johnnycmj
  • 浏览: 36803 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

Java 排序的几种算法

 
阅读更多

首先定义一个基类:

public interface MySort {
 public int[] sort(int[] arr);
}

 

1.冒泡排序: 

public class Bubblu implements MySort {
	@Override
	public int[] sort(int[] arr) {
		// 数组遍历
		for (int i = 0; i < arr.length - 1; i++) {
			// 定义一个标记
			boolean flag = true;
			for (int j = 0; j < arr.length - 1 - i; j++) {
				// 如果前一个数大于后一个数,则交换位置
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;

					// 把标签置为false
					flag = false;
				}
			}
			// 如果flag 为 true 则退出循环
			if (flag) {
				break;
			}
		}
		return arr;
	}
}

 

2.选择排序:

public class SelectSort implements MySort {
	@Override
	public int[] sort(int[] arr) {
		// 数组遍历
		for (int i = 0; i < arr.length; i++) {
			// 设定一个数组脚标标签
			int index = i;
			for (int j = i + 1; j < arr.length; j++) {
				// 如果标签数大于后面数组,则交换数组脚标
				if (arr[index] > arr[j]) {
					index = j;
				}
			}
			// 如果脚标不等于原先设定的,则交换原先数和脚标数
			if (index != i) {

				int temp = arr[index];
				arr[index] = arr[i];
				arr[i] = temp;
			}
		}
		// 返回 arr
		return arr;
	}
}

 

3.插入排序

public class InsertSort implements MySort {
	@Override
	public int[] sort(int[] arr) {
		int j = 0;
		// 定义一个中间变量
		int key = 0;
		for (int i = 1; i < arr.length; i++) {
			// 如果后一个数小于前一个数,则把后一个数拿出来
			if (arr[i] < arr[i - 1]) {
				key = arr[i];
				// j赋值为前一个数组的下标
				j = i - 1;
				// 如果满足条件,则把前一个数赋给后一个数
				while (j >= 0 && key < arr[j]) {
					arr[j + 1] = arr[j];
					// 将 j的值减一
					j--;
				}
				// 将得到的小的数插入到j后面
				arr[j + 1] = key;
			}
		}
		return null;
	}
}
 
分享到:
评论

相关推荐

    Java实现几种常见排序方法

    ### Java 实现几种常见排序方法 #### 泡泡排序(Bubble Sort) 泡泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复...

    Java几种排序方法

    根据给定的信息,本文将详细介绍Java中的四种基本排序算法:冒泡排序、插入排序、快速排序和选择排序。 ### 一、冒泡排序 #### 1. 原理介绍 冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两...

    用Java实现几种常见的排序算法

    根据提供的文件信息,本文将详细介绍如何使用Java语言来实现几种常见的排序算法,包括插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)以及希尔排序(Shell Sort)。这些排序算法在...

    各种排序算法比较(java实现)

    本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...

    用Java实现几种常见的排序算法.txt

    根据提供的文件信息,我们可以总结出该文档主要涉及了五种基于Java实现的排序算法:插入排序(Insert Sort)、冒泡排序(Bubble Sort)、选择排序(Selection Sort)、希尔排序(Shell Sort)以及快速排序(Quick ...

    java编写的几种排序算法

    本文将深入探讨在Java中实现的几种常见排序算法:冒泡排序、快速排序以及堆排序。 1. **冒泡排序(Bubble Sort)** 冒泡排序是最简单的排序算法之一,通过重复遍历数组,比较相邻元素并交换位置,直到没有任何一对...

    Java几种常见的排序方法

    Java中几种比较常见的排序方法,像冒泡、快速排序、插入排序登。

    JAVA排序汇总 java应用中一些比较经典的排序算法

    本文将对几种经典的排序算法进行简要介绍和分析。 1. **插入排序**: 插入排序分为直接插入排序和折半插入排序。直接插入排序是将每个元素逐个插入已排序部分,而折半插入排序则是利用二分查找减少比较次数。希尔...

    Java几种常见的排序算法

    Java几种常见的排序算法

    Java几种排序算法

    本文将详细介绍Java中常见的几种排序算法,包括冒泡排序、快速排序以及选择排序。 1. **冒泡排序**: 冒泡排序是最基础的排序算法之一,它的主要思想是通过不断比较相邻元素并交换位置,使得较大的元素逐渐“浮”到...

    JAVA几种常用的排序算法

    JAVA几种常用的经典的排序算法 冒泡 选择 快速 shell 堆排序

    JAVA排序算法集合

    以上介绍了Java排序算法中常见的几种方法及其变体。每种算法都有其特点和适用场景,例如当数据量较小时可以选择直接插入排序或直接选择排序;当数据量较大时,归并排序和快速排序则更为合适。理解这些算法的工作原理...

    Java所有排序算法大全

    本文将深入探讨Java中常见的几种排序算法,包括它们的工作原理、优缺点以及如何在实际编程中应用。 首先,我们来看`BubbleSortAlgorithm.java`,它实现的是冒泡排序。冒泡排序是一种简单的交换排序,通过重复遍历...

    Java排序算法详细整理

    【Java排序算法详细整理】 在计算机科学中,排序算法是用于对一组数据进行排列的算法。在Java中,实现各种排序算法有助于理解数据结构和算法的原理,同时也能提高编程能力。以下是对Java中常见的几种排序算法的详细...

    java排序算法效率比较

    在Java编程语言中,排序算法是数据结构与算法学习中的重要组成部分。本实验通过生成大量随机数并写入文件,然后使用四种不同的排序算法进行排序,以比较它们的效率。以下是对这四种排序算法的详细解释: 1. **冒泡...

    java几种排序方法代码

    使用java实现的选择、冒泡、插入、快速、希尔排序以及折半查找

    java最常见的几种排序

    java排序算法,包括冒泡、插入、快速、选择等四种最常见的排序算法

    Java各种排序算法代码

    下面我们将详细探讨Java中常见的几种排序算法。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单的交换排序,通过不断比较相邻元素并交换位置,将最大或最小的元素逐渐“冒泡”到数组的一端。虽然效率较低,但其...

Global site tag (gtag.js) - Google Analytics