Java中:
原始数据类型的参数是
传值 的
而
符合数据类型的参数是
传引用 的
class BubbleSort<T extends Comparable<T>> {
private T holder;
public void sort(T[] arr){
boolean soldier = true;
for (int i = arr.length - 1; i >= 0; i --){
soldier = true;
for (int j = i; j > 0; j --){
if (arr[j].compareTo(arr[j - 1]) < 0){
swap(arr, j, j - 1);
soldier = false;
}
}
if (soldier){
break;
}
}
}
//arr以引用的形式传入, idxOne和idxTwo以值的形式传入
public void swap(T[] arr, int idxOne, int idxTwo){
holder = arr[idxOne];
arr[idxOne] = arr[idxTwo];
arr[idxTwo] = holder;
}
public static void main(String[] args) {
BubbleSort<Integer> bs = new BubbleSort<Integer>();
Integer[] arr = {1, 7, 3, 8, 5};
bs.sort(arr);
for (int item : arr)
System.out.print(item + " ");
}
}
//Print Result: 1 3 5 7 8 (改变了原数组对象的值)
分享到:
相关推荐
冒泡排序详解,简单而详细的讲清楚了,什么是冒泡排序。 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首...
根据给定的信息,我们可以深入探讨冒泡排序算法及其在Java中的实现细节。冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复...
java冒泡排序代码,亲测能用,控制台输入数据,自动排序
冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python...
* 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。
以下是一个简单的Java代码实现冒泡排序: ```java public class BubbleSort { public static void main(String[] args) { int[] array = {5, 3, 8, 1, 2}; bubbleSort(array); for (int i : array) { System....
### Java冒泡排序算法知识点详解 #### 一、冒泡排序基本概念 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是...
冒泡排序是一种基础且经典的排序算法,它通过不断交换相邻两个元素的位置,使得每一次遍历都能将当前未排序部分的最大(或最小)元素“冒”到已排序部分的末尾。在Java编程语言中,我们可以很容易地实现这个算法。...
以下是一个简单的Java冒泡排序实现: ```java public class BubbleSort { public static void main(String[] args) { int[] array = new int[]{5, 2, 8, 3, 9, 1}; // 待排序的数组 int n = array.length; ...
用户可以通过输入不同的指令("inc"、"dec"、"ncinc" 或 "ncdec")来选择不同的排序方式。 ### 知识点三:使用 `RuleBasedCollator` 进行国际化排序 #### 实现多语言排序 对于需要支持多种语言的程序来说,使用 `...
在这个Java GUI实现的冒泡排序项目中,我们利用了NetBeans工具来设计用户界面,使用户能够直观地看到排序的过程。 首先,我们要理解冒泡排序的基本原理。冒泡排序的核心在于两两比较相邻元素,如果前一个元素大于...
在给定的部分代码中,我们可以看到一个简单的冒泡排序的实现方式。下面将详细介绍这段代码的关键部分,并对其加以优化。 #### 三、代码解析 1. **定义数组**: ```java int b[] = {1, 5, 4, 8, 55, 3, 43, 108};...
冒泡排序原理和JAVA实现 冒泡排序是一种比较排序,也称为泡沫排序或沉沦排序。它的工作原理是通过重复地走访过要排序的数列,依次比较相邻的两个元素,如果他们的顺序错误就把他们交换过来,直到没有再需要交换的...
下面是一个简单的Java冒泡排序实现: ```java public class BubbleSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i ; i++) { // 外层循环控制遍历次数 for (int...
1.冒泡排序的原理:每次都从第一个元素开始(索引0),向后两两比较,只要后面的比前面的大,就交换(从大到小) 2.通过画图分析,5个数字排4趟,n数字排n-1趟,而外层的for循环代表的是循环的趟数,所以外层循环的结束条件是...
以下是一个简单的Java冒泡排序器的示例: ```java public class BubbleSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i ; i++) { for (int j = 0; j ; j++) { ...
冒泡排序的优化主要有以下几种方式: 1. **提前终止**:如果在某次遍历时没有发生任何交换,说明序列已经排序完成,可以提前结束排序。 ```java boolean swapped; for (int i = 0; i ; i++) { swapped = ...
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
以下是一个简单的Java实现冒泡排序的代码示例: ```java public class MyBubSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i ; i++) { // 外层循环控制遍历次数 ...
1冒泡排序 2改进的冒泡排序,在一次冒泡的过程中,如果没有发生交换,则已经有序 3进一步改进的冒泡排序,如果在某次冒泡过程中,最后一次进行交换的位置为flag,则表示flag之后的序列已经有序,那么下一次冒泡就...