标签:
以前就学过C,最近学的JAVA,感觉不错。
明年研究生了,现在我想复习一下数据结构,都是基础的东西。
先从排序算法开始吧。第一个冒泡排序。
public class BubbleSort { public static void sort(int[] a)//简单的冒泡算法。 { //static 静态只能调用静态 int temp=0; int SwapSteps=0;//交换的次数 int CompareSteps=0;//比较的次数 int flag=1;//如果排好了,再循环就没用了,怎么办?-->可以立个flag,没有交换就跳过循环。 for(int i=0;i<a.length-1&&flag==1;i++) { flag=0; for(int j=0;j<a.length-i-1;j++) { CompareSteps++; if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; flag=1; SwapSteps++; } } for(int k=0;k<a.length;k++) System.out.print(a[k]+" "); System.out.println(‘.‘); } System.out.println("一共比较了"+CompareSteps+"次"); System.out.println("一共交换了"+SwapSteps+"次"); } public static void main(String[] args) { int[] a={1,5,6,9,8,7,3,2,4,10};//为什么[]写在前面,和C语言不一样啊? System.out.println("数组成员个数为:"+a.length+"个"); sort(a); } }
每走一遍,显示一行。
最好n-1,最差(n-1)n/2。
标签:
原文地址:http://www.cnblogs.com/HyouGenn/p/5298077.html