标签: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
标签:auth 常用 二次 长度 main 比较 ... 举例 分析
原文地址:https://www.cnblogs.com/nwxayyf/p/9471598.html