冒泡排序-java实现
2016-07-10 16:45
453 查看
冒泡排序:
重复地比较相邻的元素,且在它们不符合顺序时将它们互换,从而完成对某一个列表的排序。排序策略:
1.扫描列表且比较相邻两个元素,如果不是按要求的顺序排列则将它们互换,这样就把最大值“冒泡”到最后一个位置,这个位置就是该值在列表中的最终排序好的位置;2.再次扫描列表,冒泡到倒数第二个位置;
3.再次扫描列表,冒泡倒数第3,4,...n个位置直到列表排序完成。
例子:
初始:2 8 5 1 3step1:2 5 1 3 8(将8冒泡到最终位置)
step2:2 1 3 5 8(将5冒泡到最终位置)
step3:1 2 3 5 8(将3冒泡到最终位置)
step4:1 2 3 5 8(将2冒泡到最终位置)
step5:1 2 3 5 8(将1冒泡到最终位置)
最终:1 2 3 5 8
Code:
/* *Created on 2016年7月10日 *Copyright 2016 Yong Cai Limited crop. All Rights Reserved * */ package org.cy.sort; public class BubbleSort { public static void main(String[] args) { String[] str = {"nba","haha","school","cs","aha"}; printArr(bubbleSort(str)); } public static <T extends Comparable<? super T>> T[] bubbleSort(T[] data){ int len = data.length; T tmp; for(int pos = 0; pos < len; pos++){ for(int scan = 0; scan < len - pos - 1; scan++){ if(data[scan].compareTo(data[scan + 1]) > 0){ tmp = data[scan]; data[scan] = data[scan + 1]; data[scan + 1] = tmp; } } } return data; } public static <T> void printArr(T[] data){ int len = data.length; for(int i = 0; i < len; i++){ System.out.print(data[i] + " "); } System.out.println(); } }
相关文章推荐
- 冒泡排序
- C#冒泡法排序算法实例分析
- C++实现对输入数字组进行排序
- 用PHP写的一个冒泡排序法的函数简单实例
- js实现数组冒泡排序、快速排序原理
- 分享javascript实现的冒泡排序代码并优化
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- c++冒泡排序示例分享
- Java中的数组排序方式(快速排序、冒泡排序、选择排序)
- python冒泡排序算法的实现代码
- c语言实现冒泡排序、希尔排序等多种算法示例
- c#冒泡排序示例分享
- 冒泡排序算法及Ruby版的简单实现
- javascript冒泡排序小结
- 浅谈php冒泡排序
- C语言冒泡排序法心得
- PHP实现冒泡排序的简单实例
- Javascript冒泡排序算法详解
- C++冒泡排序算法实例
- C语言的冒泡排序和快速排序算法使用实例