冒泡排序
package test;
/**
* @descript BubbleSortDemo.java
* @author sinclair
* @date Jun 11, 2010
*/
class BubbleSort {
private int[] temp;
public BubbleSort( int[] src ) {
temp = src;
}
/**
* 输出显示
*/
public void display() {
for ( int i = 0; i < temp.length; i++ ) {
System.out.print( temp[i] + "," );
}
}
/**
* 排序
*/
public void sort() {
for ( int i = temp.length - 1; i > 1; i-- ) {
for ( int j = 0; j < i; j++ ) {
if (temp[j] > temp[j + 1]) {
swap( j, j + 1 );
}
}
}
}
/**
* 交换
*
* @param a
* @param b
*/
public void swap( int a, int b ) {
int c = temp[a];
temp[a] = temp[b];
temp[b] = c;
}
}
public class BubbleSortDemo {
public static void main( String[] args ) {
int[] a = new int[] { 2, 5, 3, 6, 1, 7, 9, 6 };
BubbleSort bubble = new BubbleSort( a );
bubble.sort();
bubble.display();
}
}
选择排序
package test;
class SelectSort {
private int[] temp;
public SelectSort( int[] src ) {
this.temp = src;
}
/**
* 排序
*/
public void sort() {
int in, out, min;
for ( out = 0; out < temp.length - 1; out++ ) {
min = out;
for ( in = out + 1; in < temp.length; in++ ) {
if (temp[in] < temp[min]) {
min = in;
swap( out, min );
}
}
}
}
/**
* 交换
*
* @param a
* @param b
*/
public void swap( int a, int b ) {
int c = temp[a];
temp[a] = temp[b];
temp[b] = c;
}
/**
* 输出显示
*/
public void display() {
for ( int i = 0; i < temp.length; i++ ) {
System.out.print( temp[i] + "," );
}
}
}
public class SelectSortDemo {
/**
* @param args
*/
public static void main( String[] args ) {
int[] a = new int[] { 2, 5, 3, 6, 1, 7, 9, 6 };
SelectSort bubble = new SelectSort( a );
bubble.sort();
bubble.display();
}
}
快速排序
/**
*
*/
package test;
/**
* @descript QuickSortDemo.java
* @author sinclair
* @date May 13, 2010
*/
public class QuickSortDemo {
/**
* 排序
*
* @param pData
* @param left
* @param right
*/
public static void QuickSort( int[] pData, int left, int right ) {
int i, j;
i = left;
j = right;
while ( true ) {
while ( ( ++i ) < right - 1 && pData[i] < pData[left] )
;
while ( ( --j ) > left && pData[j] > pData[left] )
;
if (i >= j)
break;
swap( pData, i, j );
}
swap( pData, left, j );
if (left < j)
QuickSort( pData, left, j );
if (right > i)
QuickSort( pData, i, right );
}
/**
* 交换
*
* @param temp
* @param a
* @param b
*/
public static void swap( int temp[], int a, int b ) {
int c = temp[a];
temp[a] = temp[b];
temp[b] = c;
}
public static void main( String[] args ) {
int[] pData = new int[30];
for ( int i = 0; i < pData.length; i++ )
pData[i] = ( int ) ( Math.random() * 100 );
for ( int i = 0; i < pData.length; i++ )
System.out.print( pData[i] + " " );
QuickSortDemo.QuickSort( pData, 0, pData.length );
System.out.println( "\n快速排序处理..." );
for ( int i = 0; i < pData.length; i++ )
System.out.print( pData[i] + " " );
}
}
分享到:
相关推荐
本资料包聚焦于"Java常用排序算法"和"程序员必须掌握的8大排序算法",并深入探讨了"二分法查找"这一高效搜索技术。 首先,我们来看八大排序算法。这些算法包括: 1. **冒泡排序**:最简单的排序方法,通过不断交换...
以下是关于"Java常用排序算法"的详细解释: 1. 插入排序(Insertion Sort) 插入排序是一种简单直观的排序算法,它的工作原理类似于我们日常生活中整理扑克牌的过程。算法分为两个阶段:遍历待排序的数组,将每个...
详解Java常用排序算法-选择排序 选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每次从待排序的元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的元素排完。 选择...
Java常用排序算法-归并排序 归并排序是一种分治思想的排序算法,其基本思想是将待排序的数组分成若干个子序列,每个子序列都是有序的,然后再将子序列合并成一个有序的数组。这种算法的时间复杂度为O(n log n),...
本文将深入探讨Java中的八大常用排序算法,这些算法对于提升程序效率、优化数据处理具有重要意义。这8大排序算法包括:冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序、希尔排序以及桶排序。 1. **冒泡...
冒泡排序--Java常用排序算法程序员必须掌握的8大排序算法
以下是对Java中几种常见排序算法的详细解析: 1. 冒泡排序: 冒泡排序是一种简单直观的排序算法,通过不断交换相邻的不正确顺序元素来达到排序的目的。它的时间复杂度为O(n^2),在处理大量数据时效率较低。尽管效率...
总结来说,Java中常用的排序算法如Shell排序和快速排序各有特点,Shell排序适用于处理大型数据,而快速排序通常在平均情况下具有较高的效率。在实际应用中,根据数据特性选择合适的排序算法至关重要,以实现最佳性能...
【Java 常用排序算法】排序是编程中常见的任务之一,主要分为四类:插入排序、交换排序、选择排序和归并排序。此外,还有分配排序中的基数排序。以下是对这些排序算法的详细说明: 1. **直接插入排序**: 直接插入...
在 Java 中,桶排序可以使用以下步骤来实现: 1. 首先,找到输入数组中的最小值和最大值,以确定桶的个数。 2. 然后,创建一个大小为桶的个数的桶列表,用于存储待排序的元素。 3. 接下来,将输入数组中的元素分配...
在 Java 中,基数排序可以通过以下步骤来实现: 1. 首先,找到输入数组中的最大值,并计算最大值的位数。 2. 创建一个大小为 10 的桶列表,用于存储每个桶中的元素。 3. 依次遍历输入数组,将每个元素按照其个位、...
在 Java 中,插入排序算法可以通过以下代码实现: ```java public class Insertion { public static void insertionSort(int[] arr) { int n = arr.length; for (int i = 1; i ; i++) { int key = arr[i]; int ...
- 实例:在Java中,通过两个嵌套循环实现,外层循环控制未排序部分,内层循环用于将当前元素与已排序部分的元素进行比较并移动,直到找到合适的位置插入。 - 代码实现(部分): ```java for (int i = 1; i ; i+...
在 Java 中,希尔排序可以使用以下代码实现: ```java public class Shell { public static void shellSort(int[] arr) { int n = arr.length; for (int gap = n / 2; gap > 0; gap /= 2) { for (int i = gap; ...
在 Java 中,快速排序算法可以使用递归函数来实现。例如,下面的代码就是一个使用快速排序算法对整数数组进行排序的示例: ```java public class Quick { public static void quickSort(int[] arr, int low, int ...
Java排序算法之冒泡排序详解 冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就交换位置。这个过程持续对数列的末尾进行,直到整个数列都排序完成...
本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...