public class Sort {
public static void main(String[] args){
int[] bubbleArray={3,2,9,3,8,10,13,25,27,21,6,8,9,5};
bubbleArray=bubbleSort(bubbleArray);
/*
* 冒泡排序过程打印:
* 2,3,9,3,8,10,13,25,27,21,6,8,9,5
2,3,3,9,8,10,13,25,27,21,6,8,9,5
2,3,3,8,9,10,13,25,27,21,6,8,9,5
2,3,3,8,9,10,13,25,21,27,6,8,9,5
2,3,3,8,9,10,13,25,21,6,27,8,9,5
2,3,3,8,9,10,13,25,21,6,8,27,9,5
2,3,3,8,9,10,13,25,21,6,8,9,27,5
2,3,3,8,9,10,13,25,21,6,8,9,5,27
2,3,3,8,9,10,13,21,25,6,8,9,5,27
2,3,3,8,9,10,13,21,6,25,8,9,5,27
2,3,3,8,9,10,13,21,6,8,25,9,5,27
2,3,3,8,9,10,13,21,6,8,9,25,5,27
2,3,3,8,9,10,13,21,6,8,9,5,25,27
2,3,3,8,9,10,13,6,21,8,9,5,25,27
2,3,3,8,9,10,13,6,8,21,9,5,25,27
2,3,3,8,9,10,13,6,8,9,21,5,25,27
2,3,3,8,9,10,13,6,8,9,5,21,25,27
2,3,3,8,9,10,6,13,8,9,5,21,25,27
2,3,3,8,9,10,6,8,13,9,5,21,25,27
2,3,3,8,9,10,6,8,9,13,5,21,25,27
2,3,3,8,9,10,6,8,9,5,13,21,25,27
2,3,3,8,9,6,10,8,9,5,13,21,25,27
2,3,3,8,9,6,8,10,9,5,13,21,25,27
2,3,3,8,9,6,8,9,10,5,13,21,25,27
2,3,3,8,9,6,8,9,5,10,13,21,25,27
2,3,3,8,6,9,8,9,5,10,13,21,25,27
2,3,3,8,6,8,9,9,5,10,13,21,25,27
2,3,3,8,6,8,9,5,9,10,13,21,25,27
2,3,3,6,8,8,9,5,9,10,13,21,25,27
2,3,3,6,8,8,5,9,9,10,13,21,25,27
2,3,3,6,8,5,8,9,9,10,13,21,25,27
2,3,3,6,5,8,8,9,9,10,13,21,25,27
2,3,3,5,6,8,8,9,9,10,13,21,25,27
*/
int[] selectionArray={3,2,9,3,8,10,13,25,27,21,6,8,9,5};
selectionArray=selectionSort(selectionArray);
/*
选择排序过程打印:
2,3,9,3,8,10,13,25,27,21,6,8,9,5
2,3,9,3,8,10,13,25,27,21,6,8,9,5
2,3,3,9,8,10,13,25,27,21,6,8,9,5
2,3,3,5,8,10,13,25,27,21,6,8,9,9
2,3,3,5,6,10,13,25,27,21,8,8,9,9
2,3,3,5,6,8,13,25,27,21,10,8,9,9
2,3,3,5,6,8,8,25,27,21,10,13,9,9
2,3,3,5,6,8,8,9,27,21,10,13,25,9
2,3,3,5,6,8,8,9,9,21,10,13,25,27
2,3,3,5,6,8,8,9,9,10,21,13,25,27
2,3,3,5,6,8,8,9,9,10,13,21,25,27
2,3,3,5,6,8,8,9,9,10,13,21,25,27
2,3,3,5,6,8,8,9,9,10,13,21,25,27*/
int[] insertionArray={3,2,9,3,8,10,13,25,27,21,6,8,9,5};
insertionArray=insertionSort(insertionArray);
/*
插入排序过程打印
2,3,9,3,8,10,13,25,27,21,6,8,9,5
2,3,9,3,8,10,13,25,27,21,6,8,9,5
2,3,3,9,8,10,13,25,27,21,6,8,9,5
2,3,3,8,9,10,13,25,27,21,6,8,9,5
2,3,3,8,9,10,13,25,27,21,6,8,9,5
2,3,3,8,9,10,13,25,27,21,6,8,9,5
2,3,3,8,9,10,13,25,27,21,6,8,9,5
2,3,3,8,9,10,13,25,27,21,6,8,9,5
2,3,3,8,9,10,13,21,25,27,6,8,9,5
2,3,3,6,8,9,10,13,21,25,27,8,9,5
2,3,3,6,8,8,9,10,13,21,25,27,9,5
2,3,3,6,8,8,9,9,10,13,21,25,27,5
2,3,3,5,6,8,8,9,9,10,13,21,25,27
*/
}
/**
* 冒泡排序,按升序排
*/
public static int[] bubbleSort(int[] array){
int maxPoint=(array.length-1);
int t;
for(int i=maxPoint;i>1;i--){
for(int j=0;j<i;j++){
if(array[j]>array[j+1]){
t=array[j];
array[j]=array[j+1];
array[j+1]=t;
System.out.println(printArrayStr(array));
}
}
}
return array;
}
/**
* 选择排序,跟冒泡相比减少了交换次数
*/
public static int[] selectionSort(int[] array){
int min,t;
for(int i=0;i<(array.length-1);i++){
min=i;
for(int j=i;j<array.length;j++){
if(array[j]<array[min]){
min=j;
}
}
t=array[i];
array[i]=array[min];
array[min]=t;
System.out.println(printArrayStr(array));
}
return array;
}
/**
* 插入排序
*/
public static int[] insertionSort(int[] array){
int i,j,t;
for(i=1;i<array.length;i++){
t=array[i];
j=i;
while(j>0&&array[j-1]>=t){
array[j]=array[j-1];
j--;
}
array[j]=t;
System.out.println(printArrayStr(array));
}
return array;
}
public static String printArrayStr(int[] array){
StringBuffer str=new StringBuffer();
for(int i=0;i<(array.length);i++){
str.append(array[i]);
if(i==(array.length-1)) break;
str.append(",");
}
return str.toString();
}
}
分享到:
相关推荐
交换排序 选择排序 冒泡排序 插入排序
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
本资源包含了几种常见的排序算法,包括堆排序、选择排序、冒泡排序、归并排序和插入排序。这些排序算法各有特点,适用于不同的场景,并且在理解它们的工作原理后,能够帮助初学者更好地掌握编程基础。 1. **堆排序*...
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
采用c++描述了各种排序算法,包括选择排序 冒泡排序 插入排序 基数排序 快速排序 归并排序 。实验内容 1、创建排序类。 2、提供操作:选择排序、冒泡排序、插入排序、*基数排序、*快速排序、*归并排序。 3、*能够...
有一个模板类写出了快速排序,冒泡排序,插入排序,选择排序四种算法。用的是C++哦
冒泡排序、选择排序和插入排序是三种基本的排序算法,它们都是在计算机科学中用于组织数据的关键技术。这些算法的实现通常用作教学示例,帮助初学者理解排序过程和时间复杂性。 **冒泡排序(Bubble Sort)**: 冒泡...
以下是关于"冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序"这七种常见排序算法的源码实现及相关知识点的详细解释: 1. **冒泡排序**:冒泡排序是一种简单的排序算法,它重复地遍历待排序的...
插入排序是一种简单的排序算法,它的基本思想是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。在C++中,可以使用两层循环实现,外层循环控制未排序部分,内层循环寻找插入...
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
本文将详细讨论三种基础的排序算法:选择排序、插入排序和冒泡排序。这些算法虽然简单,但在理解计算机如何执行排序操作方面起着至关重要的作用。 首先,我们来看**选择排序**(Selection Sort)。它的工作原理是...
直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序和二路归并排序是计算机科学中经典的排序算法,它们在数据处理和算法学习中占有重要地位。这些排序算法各有特点,适用场景不同,下面将逐一详细介绍,并结合...
选择排序、插入排序、冒泡排序以及快速排序和归并排序的C语言实现,绝对可用
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
printf("\t1: 插入排序\n"); printf("\t2: 冒泡法排序\n"); printf("\t3: 快速排序\n"); printf("\t4: 直接选择排序\n"); printf("\t5: 堆排序\n"); printf("\t6: 归并排序\n"); printf("\t7: 希尔排序\n"); ...
本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...
本文将详细讲解六种经典的排序算法——合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合提供的文件名(sort.c、set.c、main.c、set.h、sort.h)推测出每个文件可能包含的代码实现。 1. **合并...
总的来说,这段代码提供了四种排序算法的实现,分别是冒泡排序、选择排序、插入排序以及Java内置的数组排序。每种排序算法都有其适用场景,理解这些算法可以帮助我们更好地解决实际问题,并根据需求选择合适的排序...
以上六种排序算法各有优缺点,如选择排序和冒泡排序时间复杂度较高,但实现简单;插入排序在部分有序的情况下效率较高;基数排序适用于处理大量整数排序;快速排序平均性能优秀,但最坏情况下时间复杂度较高;归并...
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht