数据结构复习之–“冒泡排序”-JAVA实现
2017-09-02 09:46
274 查看
冒泡排序Java完整代码如下,写的不好,仅供参考,勿喷!
import java.util.Scanner; /** * 数据结构复习之“冒泡排序”练习程序 * @author DL * 时间复杂度:O(n^2) */ public class BubbleSortTest { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //首先得到要输入数据的个数 int totalNums = sc.nextInt(); //从控制台输入数据到数组中 int[] inputData = new int[totalNums]; for (int i = 0; i <totalNums; i++) { inputData[i] = sc.nextInt(); } show(inputData); BubbleSort(inputData);//进行冒泡排序 show(inputData); } /** * function:显示整数数组中的数据 * @param array 待显示数组 */ static void show(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } System.out.println("\n"); } /** * function: 使用冒泡排序算法排序整形数组中的数据,升序 * @param array 待排序整形数组 */ static void BubbleSort(int[] array) { int tempVar;//临时变量,用于交换数据 //标志位,用于跳出多重循环,表示的是上次冒泡过程中是否改变数据顺序, //若上次冒泡没有改变顺序,则表示数组已经排好序,后续的冒泡过程可省略,加快排序速度 boolean isChangeOrder=true; if (null == array || 1 == array.length) return; else { //包含n个数据,只需n-1次冒泡过程 for (int i = 0; i < array.length-1 && isChangeOrder; i++) { isChangeOrder=false; //每次冒泡的过程都比上次少比较一个元素 for (int j = 1; j < array.length - i; j++) { if (array[j - 1] > array[j]) { //每次冒泡过程中交换顺序 tempVar = array[j - 1]; array[j - 1] = array[j]; array[j] = tempVar; isChangeOrder=true; } } } } } }
相关文章推荐
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java)
- Java数据结构之双端链表原理与实现方法
- java基础复习1--基本数据类型、运算符号、表达式语句与程序结构
- 数据结构教程(java语言描述)徐孝凯主编----复习摘要01
- java实现tree型的数据结构
- 冒泡排序 Java数据结构与算法
- 数据结构之冒泡排序与插入排序的思想与实现
- (Java)单链表Java语言链式结构实现(数据结构四)
- 数据结构——栈—— 顺序栈(附java实现)
- java并发编程5:实现锁无关数据结构
- 数据结构之队列的java实现
- Java5 下实现锁无关数据结构
- Java单链表顺序和链式实现(数据结构五)
- 数据结构之优先队列--二叉堆(Java实现)
- 数据结构——快速排序原理及算法Java实现
- Java单链表顺序和链式实现(数据结构五)
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java)
- Json树形结构数据转Java对象并存储到数据库的实现-超简单的JSON复杂数据处理 .
- 数据结构之应用 "栈(Stack)" 实现: 解析算术表达式及计算求值 (C#/Java)
- Java 下实现锁无关数据结构