`
jayzotion
  • 浏览: 48431 次
  • 性别: Icon_minigender_1
  • 来自: 森林之城
社区版块
存档分类
最新评论

几种排序java实现

    博客分类:
  • java
阅读更多
package com.wyh.anl;

public class TestSort{

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		int a[] = { 115, 0, 5, 2, 1, 8, 9, 7, 6, 78 };
		bublSort(a);
		for (int j : a) {
			System.out.print(j + "  ");
		}
	}

	// 插入排序
	public static void insertSort(int a[]) {
		for (int i = 1; i < a.length; i++) {
			int tmp = a[i];
			int j = i;

			while (j > 0) {
				if (tmp < a[j - 1]) {
					a[j] = a[j - 1];
				} else {
					break;
				}
				j--;
			}
			a[j] = tmp;
		}
	}

	// 选择排序
	public static void selectSort(int a[]) {
		for (int i = 0; i < a.length; i++) {
			int sel = i;
			int tmp = i;
			for (int j = i; j < a.length; j++) {
				if (a[tmp] > a[j]) {
					tmp = j;
				}
			}
			if (tmp != sel) {
				int awp = a[sel];
				a[sel] = a[tmp];
				a[tmp] = awp;
			}
		}
	}

	// 冒泡排序法
	public static void bublSort(int a[]) {
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a.length - i - 1; j++) {
				int tmp = 0;
				if (a[j] > a[j + 1]) {
					tmp = a[j];
					a[j] = a[j + 1];
					a[j + 1] = tmp;
				}
			}
		}
	}

	// 归迸排序法
	public static void merageSort(int data[], int first, int n) {

		int n1 = 0;
		int n2 = 0;

		if (n > 1) {
			n1 = n / 2;
			n2 = n - n1;

			merageSort(data, first, n1);
			merageSort(data, first + n1, n2);

			merage(data, first, n1, n2);
		}
	}

	private static void merage(int data[], int first, int n1, int n2) {

		int tmp[] = new int[n1 + n2];

		int serN1 = 0;
		int serN2 = 0;
		int serTmp = 0;

		while (serN1 < n1 && serN2 < n2) {

			if (data[first + serN1] < data[first + serN2 + n1]) {

				tmp[serTmp++] = data[first + (serN1++)];

			} else {

				tmp[serTmp++] = data[first + n1 + (serN2++)];
			}
		}

		while (serN1 < n1) {
			tmp[serTmp++] = data[first + (serN1++)];
		}

		while (serN2 < n2) {
			tmp[serTmp++] = data[first + n1 + (serN2++)];
		}

		for (int i = 0; i < (n1 + n2); i++) {
			data[first + i] = tmp[i];
		}
	}
}
分享到:
评论

相关推荐

    Java实现几种常见排序方法

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

    几种经典的排序算法java实现

    并用java实现。代码拿去即可用,不需做任何修改! 部分内容: /** * 快排:O(n*logn);如果是从小到大排序; * 思想:选一个关键数据,将数组分成以关键数据分割的独立两个子数组;比关键数据小的在左边,大的在...

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

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

    Java几种排序方法

    根据给定的信息,本文将详细介绍Java中的四种基本排序算法:冒泡排序、插入排序、快速排序和选择排序。...以上四种排序算法各有优缺点,适用场景也不同。在实际应用中,根据具体需求选择合适的排序算法是非常重要的。

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

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

    java实现插入排序

    在Java中实现插入排序,主要涉及数组操作和循环控制,我们可以从以下几个方面来理解这个过程。 1. **基本概念** 插入排序在实际操作中类似于打扑克牌,每拿到一张新牌(数组中的元素),就将其插入到已排序的序列...

    拓扑排序java实现

    ### 拓扑排序Java实现知识点详解 #### 一、拓扑排序概念 拓扑排序是一种针对有向无环图(DAG)进行排序的方法,主要用于确定任务执行的顺序。在实际应用中,例如项目管理中的任务调度、依赖关系解析等场景下非常...

    常用排序算法的java实现(冒泡、插入、选择、希尔、归并、快排)

    本篇文章将详细讲解标题中提到的六种常见排序算法的Java实现。 1. **冒泡排序**:冒泡排序是最基础的排序算法之一,它通过不断交换相邻的逆序元素来逐渐将较大的元素“浮”到数组的前端。在Java中,冒泡排序的基本...

    几种内部排序算法的Java实现

    交换排序是通过交换元素位置来实现排序,包括冒泡排序和快速排序。 (一)冒泡排序 冒泡排序(Bubble Sort)是最简单的交换排序,通过不断地比较相邻元素并交换位置,使得较大的元素逐渐“冒泡”到序列末尾。Java ...

    java最常见的几种排序

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

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

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

    插入排序 java实现

    **插入排序(Insertion Sort)**是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已...每种排序算法都有其适用场景和优缺点,理解并掌握这些算法有助于在实际编程中选择合适的排序方法。

    几种常见排序算法JAVA实现.pdf

    几种常见排序算法JAVA实现.pdf

    内部排序算法java实现

    这里我们将深入探讨Java实现的几种内部排序算法,包括希尔排序、快速排序、堆排序、归并排序、冒泡排序、插入排序和选择排序。 首先,希尔排序是一种基于插入排序的算法,通过将原始数组分解成多个子序列来提高效率...

    几种经典排序算法的Java实现

    ##### 直接插入排序Java实现示例 ```java public class InsertSortTest { public static int count = 0; public static void main(String[] args) { int[] data = new int[]{5, 3, 6, 2, 1, 9, 4, 8, 7}; ...

    java堆排序和几种排序方法实现代码.pdf

    此外,代码中还展示了其他几种排序方法的实现,包括冒泡排序、双路冒泡排序、插入排序、快速排序和选择排序。这些排序算法各有特点: - 冒泡排序:通过不断交换相邻的逆序元素,逐步将最大(或最小)元素移到数组...

Global site tag (gtag.js) - Google Analytics