`

Java基本排序算法

    博客分类:
  • Java
阅读更多

1、冒泡排序算法

 

public class MaoPao {

	public static void main(String[] args) {
		int[] a = { 10, 3, 55, 22, 25, 44, 9, 58, 33, 12 };
		paiXu(a);
		System.out.println("最终比较结果:");
		print(a);
	}

	private static void print(int[] a) {
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + "\t");
			if(i==a.length-1){
				System.out.println();
			}
		}
	}

	/**
	 * 冒泡排序 
	 * n个数进行排序,需进行n-1轮比较 
	 * 每一轮比较中需进行(n-当前轮数)次两两比较,每比较完一轮排好一个数
	 * @param a
	 */
	public static void paiXu(int[] a) {
		for (int i = 1; i < a.length; i++) {
			for (int j = 0; j < a.length - i; j++) {
				if (a[j] > a[j + 1]) {
					int t = a[j];
					a[j] = a[j + 1];
					a[j + 1] = t;
				}
			}
			System.out.println("第" + i + "轮比较结果:");
			print(a);
		}
	}
}

 测试结果如下:


 

2、选择排序算法

 

public class XuanZe {

	public static void main(String[] args) {
		int a[] = { 3, 2, 8, 6, 4 };
		xuanZe(a);
		System.out.println("最终比较结果:");
		print(a);
	}

	private static void print(int[] a) {
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + "\t");
			if(i==a.length-1){
				System.out.println();
			}
		}
	}

	// 选择排序法
	public static void xuanZe(int[] a) {
		for (int i = 0; i < a.length - 1; i++) {
			int minIndex = i;// 假设最小数的索引
			// 找最小数的索引
			for (int j = i + 1; j < a.length; j++) {
				if (a[j] < a[minIndex]) {
					minIndex = j;
				}
			}
			// 如果假设的最小数索引与找到的最小数索引不相同,那就交换位置
			if (minIndex != i) {
				int t = a[i];
				a[i] = a[minIndex];
				a[minIndex] = t;
			}
			System.out.println("第" + (i+1) + "轮比较结果:");
			print(a);
		}
	}

}

 测试结果如下:


 

3、插入排序算法

 

public class ChaRu {

	public static void main(String[] args) {
		int a[] = { 4, 2, 5, 8, 6 };
		chaRu(a);
		System.out.println("最终比较结果:");
		print(a);
	}

	private static void print(int[] a) {
		for (int i = 0; i < a.length; i++) {
			System.out.print(a[i] + "\t");
			if(i==a.length-1){
				System.out.println();
			}
		}
	}

	// 插入排序法
	// 算法思想:假设前面的数已经排好,用后面的数跟前面的数进行比较
	public static void chaRu(int[] a) {
		//首轮比较,假设第一个数已经排好
		for (int i = 1; i < a.length; i++) {
			// 直到数组下标为0结束比较
			for (int j = i; (j > 0) && (a[j] < a[j - 1]); j--) {
				int t = a[j];
				a[j] = a[j - 1];
				a[j - 1] = t;
			}
			System.out.println("第" + i + "轮比较结果:");
			print(a);
		}
	}

}

 测试结果如下:


 

 

转载请注明出处: http://xieke90.iteye.com/blog/2235769

 

  • 大小: 13.1 KB
  • 大小: 6 KB
  • 大小: 5.9 KB
3
2
分享到:
评论

相关推荐

    java基本排序算法实现

    除此之外,其他基本排序算法如插入排序、希尔排序、堆排序和冒泡排序也是常见的排序算法: - **插入排序**:将数组分为已排序区和未排序区,每次从未排序区取出一个元素,插入到已排序区的正确位置。 - **希尔排序*...

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

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

    Java各种排序算法代码.zip

    这个名为"Java各种排序算法代码.zip"的压缩包包含了一系列实现不同排序算法的Java源代码。排序算法是计算机科学中的基本概念,用于对一组数据进行排列。下面将详细讨论这些算法及其在Java中的实现。 1. 冒泡排序...

    Java选择排序算法源码

    本主题将深入探讨Java实现的选择排序算法,这是一种简单直观的排序算法,适合新手学习。 选择排序(Selection Sort)的基本思想是,在未排序的序列中找到最小(或最大)的元素,放到序列的起始位置,然后再从剩余未...

    Java各种排序算法_随机数

    Java 排序算法概述 Java 排序算法是指在 Java 编程语言中使用的各种排序方法,旨在对数据进行有序排列。常见的排序算法有插入排序、交换排序、选择排序、归并排序、分配排序等。 插入排序是最基本的一种排序算法,...

    Java排序算法实现

    Java排序算法实现 Java排序算法实现 Java排序算法实现

    Java各种排序算法(含代码)

    在编程领域,排序算法是数据结构与算法学习中的基础部分,尤其在Java中,了解和掌握各种排序算法对于提升程序性能至关重要。以下是对标题和描述中提到的Java各种排序算法的详细解释,以及它们的实现代码概述。 1)*...

    Java冒泡排序算法

    冒泡排序是一种基础且经典的排序算法,主要应用于教学和理解排序的基本原理。在Java中实现冒泡排序,我们可以从以下几个方面来深入理解: 1. **基本概念**:冒泡排序通过重复遍历待排序的数列,一次比较两个元素,...

    Java所有排序算法大全

    在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。本文将深入探讨Java中常见的几种排序算法,包括它们的工作原理、优缺点以及如何在实际编程中应用。 首先,我们来看`BubbleSort...

    Java 选择排序 算法

    Java选择排序算法是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种算法对列表中的数据进行了一次完整...

    Java各种排序算法代码.

    在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。排序算法是用来组织和优化数据结构的关键工具,它可以帮助我们快速查找、分析和处理数据。本资源包含的是Java实现的各种常见排序...

    Java各种排序算法代码

    在编程领域,排序算法是计算机科学中的核心概念,尤其是在Java这样的高级编程语言中。Java提供了丰富的内置库函数,如Arrays.sort(),可以方便地对数组进行排序。然而,理解并掌握各种排序算法对于优化程序性能、...

    常用排序算法java演示

    本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...

    Java常见排序算法源码集.rar

    5. **归并排序(Merge Sort)**:也是基于分治法的排序算法,将序列分为两半,分别进行排序,然后将两个有序子序列合并成一个完整的有序序列。归并排序在任何情况下都能保证O(n log n)的时间复杂度。 6. **堆排序...

    java排序算法插入选择冒泡

    java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡

    Java常用排序算法&程序员必须掌握的8大排序算法+二分法查找

    在编程领域,尤其是在Java开发中,排序算法是基础且至关重要的知识。无论是处理数据库查询、数据分析,还是优化程序性能,熟练掌握各种排序算法都显得尤为关键。本资料包聚焦于"Java常用排序算法"和"程序员必须掌握...

    java版本排序算法

    ### Java版本排序算法详解 #### 插入排序 插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。在Java中,我们可以创建一个`...

    Java 快速排序算法

    Java 快速排序,目前来说效率很高的一种排序算法,好理解。

Global site tag (gtag.js) - Google Analytics