黑马程序员技术交流社区
标题:
数据结构:用数组实现冒泡排序算法(已优化)
[打印本页]
作者:
棉/mg花/x糖
时间:
2013-5-25 17:28
标题:
数据结构:用数组实现冒泡排序算法(已优化)
本帖最后由 棉/mg花/x糖 于 2013-5-26 17:41 编辑
数据结构:用
数组
实现
冒泡排序
算法(已优化)
注意:算法优化不是很理想,希望哪位大神能继续帮着优化!!谢谢^_^
程序源码如下:
package com.yb.ArrayAndString;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BubbleSort {
static int count = 0; //count记录交换趟数
void bubbleSort(int arr[]) { //冒泡排序方法
int i,j,temp,flag;
int len = arr.length;
//一共需比较len-1趟,每趟len-1-i次
for(i = 0; i < len-1; i++) {
flag = 0;
for(j = len-1; j > i; j--) {
if(arr[j] < arr[j-1]) {
temp = arr[j-1];
arr[j-1] = arr[j];
arr[j]= temp;
flag = 1;
}
}
if(flag == 1) count++;
else break;
}
}
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader keyin = new BufferedReader(new InputStreamReader(System.in));
String ch;
int arr[] = new int[8];
int len = arr.length;
System.out.println("请从键盘输入8个整数,一行只输入一个数:");
for(int i = 0; i < len; i++) {
ch = keyin.readLine(); //用于读取一个字符串
arr[i] = Integer.parseInt(ch); //将字符串类型ch转换成整数类型
}
//打印原始数据
System.out.println("原始数据:");
for(int i = 0; i < len; i++) {
System.out.print(" "+arr[i]);
}
System.out.println("\n");
BubbleSort p = new BubbleSort();
p.bubbleSort(arr); //实参维数组名
System.out.println("冒泡排序法的结果:");
//打印排序结果
for(int i = 0; i < len; i++) {
System.out.print(" "+arr[i]);
}
System.out.println("\n");
System.out.println("排序趟数:"+count);
}
}
复制代码
运行结果:
冒泡排序.jpg
(31.03 KB, 下载次数: 0)
下载附件
2013-5-26 17:29 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2