本人水平很差,今天看到一个排序算法,忍不住把它记下来了,哎,计算机基础不好啊
算法分析,(1)sort方法是普通的冒泡排序,比较相邻两个元素,最好情况比较n-1次最差情况比较n(n-1)/2次,时间复杂度是O(n^2)
(2)insertsort方法是插入排序,找到某个元素插入的位置,同上,时间复杂度O(n^2)
package insert;
public class Insert {
public static void main(String[] args){
int[] a = {44,13,25,14};
sort(a);
printarray(a);
insertsort(a);
printarray(a);
}
private static void printarray(int[] array){
for(int j=0;j<array.length;j++){
System.out.println(array[j]);
}
System.out.println("---------------------");
}
private static int[] sort(int[] a) {
for(int i=1;i<a.length;i++){
int index = i;
while(index>0 && a[index-1]>a[index]){
int temp = a[index-1];
a[index-1] = a[index];
a[index] = temp;
index--;
}
}
return a;
}
public static int[] insertsort(int a[]){
for(int i=1;i<a.length;i++){
int index = i;
int currentdata = a[i];
while(index>0 && a[index-1]>currentdata){
a[index] = a[index-1];
index--;
}
a[index] = currentdata;
}
return a;
}
}