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
相关推荐
除此之外,其他基本排序算法如插入排序、希尔排序、堆排序和冒泡排序也是常见的排序算法: - **插入排序**:将数组分为已排序区和未排序区,每次从未排序区取出一个元素,插入到已排序区的正确位置。 - **希尔排序*...
本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...
这个名为"Java各种排序算法代码.zip"的压缩包包含了一系列实现不同排序算法的Java源代码。排序算法是计算机科学中的基本概念,用于对一组数据进行排列。下面将详细讨论这些算法及其在Java中的实现。 1. 冒泡排序...
本主题将深入探讨Java实现的选择排序算法,这是一种简单直观的排序算法,适合新手学习。 选择排序(Selection Sort)的基本思想是,在未排序的序列中找到最小(或最大)的元素,放到序列的起始位置,然后再从剩余未...
Java 排序算法概述 Java 排序算法是指在 Java 编程语言中使用的各种排序方法,旨在对数据进行有序排列。常见的排序算法有插入排序、交换排序、选择排序、归并排序、分配排序等。 插入排序是最基本的一种排序算法,...
Java排序算法实现 Java排序算法实现 Java排序算法实现
在编程领域,排序算法是数据结构与算法学习中的基础部分,尤其在Java中,了解和掌握各种排序算法对于提升程序性能至关重要。以下是对标题和描述中提到的Java各种排序算法的详细解释,以及它们的实现代码概述。 1)*...
冒泡排序是一种基础且经典的排序算法,主要应用于教学和理解排序的基本原理。在Java中实现冒泡排序,我们可以从以下几个方面来深入理解: 1. **基本概念**:冒泡排序通过重复遍历待排序的数列,一次比较两个元素,...
在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。本文将深入探讨Java中常见的几种排序算法,包括它们的工作原理、优缺点以及如何在实际编程中应用。 首先,我们来看`BubbleSort...
Java选择排序算法是一种简单直观的排序算法,它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。这种算法对列表中的数据进行了一次完整...
在编程领域,排序算法是计算机科学中的核心概念,特别是在Java这样的高级编程语言中。排序算法是用来组织和优化数据结构的关键工具,它可以帮助我们快速查找、分析和处理数据。本资源包含的是Java实现的各种常见排序...
本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...
5. **归并排序(Merge Sort)**:也是基于分治法的排序算法,将序列分为两半,分别进行排序,然后将两个有序子序列合并成一个完整的有序序列。归并排序在任何情况下都能保证O(n log n)的时间复杂度。 6. **堆排序...
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
在编程领域,尤其是在Java开发中,排序算法是基础且至关重要的知识。无论是处理数据库查询、数据分析,还是优化程序性能,熟练掌握各种排序算法都显得尤为关键。本资料包聚焦于"Java常用排序算法"和"程序员必须掌握...
### Java版本排序算法详解 #### 插入排序 插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。在Java中,我们可以创建一个`...
Java 快速排序,目前来说效率很高的一种排序算法,好理解。
冒泡排序是一种简单直观的排序算法,它的基本思想是通过重复遍历待排序的数列,依次比较相邻元素并交换位置,使得较大的元素逐渐“浮”到数列的末尾,就像水底下的气泡逐渐升至水面一样。具体步骤如下: 1. 遍历...