码迷,mamicode.com
首页 > 编程语言 > 详细

Java 基本算法1:冒泡算法

时间:2018-08-13 23:44:28      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:auth   常用   二次   长度   main   比较   ...   举例   分析   


常用算法

1.冒泡算法

(1).基本思想
相邻的元素俩俩比较,大的往后面放,在第一次比较完以后,最大值就出现在最大索引处,同理在比较几次,这样就可以获得一个排好序的
数组。

(2).程序流程设计
A:俩俩比较,数据大的往后放
B:第一次比较完毕以后,下一次的 比较就会减少一个元素。
C:第一次比较有0个元素不参与比较
第二次比较有1个元素不参与比较
第三次比较有2个元素不参与比较
.....
第n次比较有n-1个元素不参与比较
D:总共需要比较的次数为:数组长度-1次

(3).代码实现

public class Test {
public static void main(String[] args) {
//定义数据源
int[] arr={12,23,4,53,32,123,23,23,78};
if(arr.length>0){
bubbleSort(arr);
printArray(arr);
}
}

/**
* 冒泡排序算法
* @param int[] arr:数据源
* @author Administrator
*/

public static void bubbleSort(int[] arr){
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}

/**
* 遍历数组显示输出
* @author Administrator
* @param int[] 要输出的数据源
*/
public static void printArray(int[] arr){
System.out.print("{");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.print(arr[i]);
}else{
System.out.print(arr[i]+",");
}
}
System.out.print("}");
}
}

//输出结果
{4,12,23,23,23,32,53,78,123}


(5).实际使用举例
A:要求:输入字符串"dasdfhasasjdfh"
输出字符串""
实际就是把字符串按照顺序排序

B:代码分析
a.定义一个字符串
b.把字符串转化为字符数组(toCharArray())
c.b把数组进行排序
d.把排序后的字符数组转成字符串
e.输出最后的字符

c.代码实现

public class Test {
public static void main(String[] args) {
//定义数据源字符串
String str="dasdfhasasjdfh";
//把定义的字符串转化为字符数组
char[] chs=str.toCharArray();
//把字符数组进行排序
bubbleSort(chs);
//把排序以后的字符数组转成字符串
String result=String.valueOf(chs);
//输出最后的结果
System.out.println("result is:"+result);
}

/**
* 冒泡排序算法
* @param int[] arr:数据源
* @author Administrator
*/

public static void bubbleSort(char[] arr){
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
char temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
}

//输出结果为:
result is:aaadddffhhjsss

 

Java 基本算法1:冒泡算法

标签:auth   常用   二次   长度   main   比较   ...   举例   分析   

原文地址:https://www.cnblogs.com/nwxayyf/p/9471598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!