// 从小到大
public static Integer[] bubbleSort(Integer[] array) {
for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i] > array[j]) {
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
// 从小到大9,8,7
public static Integer[] selectSort(Integer[] array) {
for (int i = 0; i < array.length; i++) {
int minIndex = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
// 从小到大
public static Integer[] insertSort(Integer[] array) {
for (int i = 1; i < array.length; i++) {
int value = array[i];
int position = i;
while (position > 0 && array[position - 1] > value) {
array[position] = array[position - 1];
position--;
}
array[position] = value;
}
return array;
}
分享到:
相关推荐
* 冒泡排序 O(n2) * 选择排序 O(n2) * 插入排序 O(n2) * 希尔排序 O(n1.5) * 快速排序 O(N*logN) * 归并排序 O(N*logN) 详见http://blog.csdn.net/crazyzxljing0621/article/details/77867788
### JAVA排序汇总知识点详解 #### 一、概述 在计算机科学中,排序是一种常见的操作,用于将一组数据按照一定的规则进行排列。Java作为一种广泛应用的编程语言,在数据结构学习与实际项目开发中扮演着重要角色。本...
归并排序的时间复杂度为O(n log n),空间复杂度为O(n),其中n是数组的长度。由于归并排序需要额外的空间来存储子数组,所以它不是原地排序算法。然而,其稳定的排序性质(即相等元素的相对顺序在排序后保持不变)使...
java实现最优冒泡排序。冒泡排序的时间复杂度为O(n2)。
本篇文章将深入探讨八大常见的排序算法,并提供它们在Java语言中的具体实现。这八大排序算法包括冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序以及计数排序。 1. 冒泡排序(Bubble Sort):...
本文将深入探讨几种常见的Java排序算法,包括它们的工作原理、性能特点以及如何在实际编程中实现。 1. 冒泡排序(Bubble Sort) 冒泡排序是一种简单直观的排序算法,通过不断交换相邻的未排序元素来逐步将最大或...
用 Java 实现冒泡排序算法 冒泡排序是一种简单的排序算法,它的基本思想是通过反复...冒泡排序的时间复杂度分析表明,它的最好时间复杂度为 O(n),最坏时间复杂度为 O(n2),平均时间复杂度为 O(n2),且它是稳定的。
冒泡排序是一种简单的排序算法,时间复杂度为 O(n2),空间复杂度为 O(1)。冒泡排序的基本思想是:依次比较相邻的元素,如果逆序则交换直到整个序列有序。冒泡排序的优点是简单易懂,实现起来很容易,但缺点是时间...
快速排序是一种高效的排序算法,时间复杂度为O(nlogn),平均时间复杂度为O(nlogn),但是最坏情况下的时间复杂度为O(n2)。快速排序的基本思想是:选择一个“轴点”元素,然后将数组分成两个部分,一部分小于轴点,一...
在Java中实现归并排序,我们可以遵循以下步骤: **一、理解归并排序原理** 归并排序是将大问题分解成小问题来解决。它将待排序的序列分成两个子序列,分别对这两个子序列进行排序,然后将排好序的子序列合并成一个...
数据结构的排序问题,1、直接插入排序程序 2、希尔排序程序 3、直接选择排序程序
它的时间复杂度为O(n log n),是稳定的排序方法。 Java实现归并排序: ```java void merge(int arr[], int l, int m, int r) { int n1 = m - l + 1; int n2 = r - m; int L[] = new int[n1]; int R[] = new ...
java二分法排序源码 十大经典排序算法动画与解析,看我就够了!(配代码完全版) 欢迎关注 公众号 五分钟学算法,一起学习一起交流进步! 排序算法是《数据结构与算法》中最基本的算法之一。 排序算法可以分为内部...
合并排序的时间复杂度为O(n log n),空间复杂度为O(n),其中n是待排序序列的长度。由于每次分割都是均匀的,所以它在最坏、最好和平均情况下的时间复杂度都保持一致,表现非常稳定。然而,由于需要额外的空间存储子...
6. 文件与I/O流:Java I/O流用于读写文件和数据传输。实验可能涉及到文件的读取、写入,或利用BufferedReader、PrintWriter等类进行文本处理。 7. 多线程:Java支持多线程编程,实验可能要求学生创建并管理线程,...
冒泡排序实际上是将数据从右至左排序完成(从右至左、从大到小进行交换排序),而快速排序是将数据从左到右排序完成(从左至右、从小到大进行交换排序),虽然选择排序相对于冒泡排序将交换次数从O(n2)O(n^2)O(n2)...
虽然这比O(1)的空间复杂度高,但其稳定的性能和可预测的时间复杂度使得归并排序在特定场景下非常有用,比如在外部排序中,由于磁盘I/O操作的代价较大,归并排序的性能优势更为明显。 6. **适用场景:** 归并排序...
二路归并排序的时间复杂度为O(n log n),空间复杂度为O(n)。在处理大数据集时,由于其稳定性和效率,二路归并排序是一种常用的排序方法。然而,如果内存资源有限,或者需要原地排序,那么其他算法如快速排序或堆排序...
时间复杂度 O(n2),为稳定算法。 将数依次进行比较,并将大(或小)的,网后放,如下: (2)快速排序 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要...