冒泡排序算法
以前大学的时候总觉得算法很难记住,其实也不是,了解了原理,也并不难,只是那时候把问题看复杂了。
原理是:不断的拿左边那个数和右边那个数比较,只要在这个循环里左边那个数大于邮编那个数就代表本次循环有效,也就是这个数组还没有被完全排序完,因此进入下一轮循环,直到任意左边的数小于右边的数的时候,退出排序。
以下是我写的java代码:
public void testsort(int arr[]) { boolean flag; do{ flag = false; for(int i=0;i<arr.len;i++){ if(arr[i]>arr[i+1]) { arr = swap(arr,i); swap = true; } } }while(flag) } private int[] swape(int []arr,int i) { int temp = arr[i]; arr[i+1]=arr[i]; arr[i] = temp; return arr; }
?
伪代码为:
do swapped = false for i = 1 to numOfElements exclusive if leftElement > rightElement swap(leftElement, rightElement) swapped = true while swapped
?
?
其他算法会陆续更新,欢迎吐槽。
原文:http://zhonglunshun.iteye.com/blog/2189182