class zyfsort {
public static void main (String[] args) {
int gohome[] = new int[]{12,7,54,21,1,4,65,76,34,9,3,6};
System.out.println("插入排序算法");
// InsertionSort(gohome);
System.out.println("-------------------------------------------");
System.out.println("选择排序算法");
// SelectSort(gohome);
System.out.println("-------------------------------------------");
System.out.println("冒泡排序算法");
// BubbleSort(gohome);
System.out.println("-------------------------------------------");
gohome =QuickSort(gohome);
for (int t=0; t<gohome.length;t++)
{
System.out.print(gohome[t]+"--");
}
}
//插入排序算法
public static void InsertionSort(int[] goal)
{
for (int i = 1; i<goal.length; i++)
{ int now = i;
int frank = goal[i];
while (now>0 && goal[now-1] <= frank)
{
goal[now]=goal[now-1];
now--;
}
goal[now]=frank;
}
for (int t=0; t<goal.length;t++)
{
System.out.print(goal[t]+"--");
}
}
//选择排序算法
public static void SelectSort(int[] goal)
{
int max;
int stmp;
for (int i = 0; i<goal.length-1; i++)
{
max=i;
for (int j = i+1; j<goal.length; j++)
if(goal[j]>goal[max])
max=j;
stmp = goal[i];
goal[i]=goal[max];
goal[max]=stmp;
}
for (int t=0; t<goal.length;t++)
{
System.out.print(goal[t]+"--");
}
}
//冒泡排序算法
public static void BubbleSort(int[] goal)
{ int stmp;
for (int i = 1; i< goal.length; i++)
{
for(int j=0; j<i;j++)
{
if(goal[i]>goal[j])
{
stmp=goal[i];
goal[i]=goal[j];
goal[j]=stmp;
}
}
}
for (int t=0; t<goal.length;t++)
{
System.out.print(goal[t]+"--");
}
}
//快速排序算法
public static int[] QuickSort(int[] number) {
QuickSort(number, 0, number.length-1);
return number ;
}
private static void QuickSort(int[] number,int left, int right) {
int stmp;
if(left < right) {
System.out.println(left+" | "+right+" | "+(left+right)/2);
int s = number[(left+right)/2];
int i = left - 1;
int j = right + 1;
while(true) {
// 向右找
while(number[++i] > s) ;
// 向左找
while(number[--j] < s) ;
if(i >= j)
break;
stmp = number[i];
number[i] = number[j];
number[j] = stmp;
}
QuickSort(number, left, i-1); // 对左边进行递回
QuickSort(number, j+1, right); // 对右边进行递回
}
}
}
分享到:
相关推荐
本资料包聚焦于"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)**:这是一...