常用算法之一冒泡排序

冒泡排序算法
以前大学的时候总觉得算法很难记住,其实也不是,了解了原理,也并不难,只是那时候把问题看复杂了。
 
原理是:不断的拿左边那个数和右边那个数比较,只要在这个循环里左边那个数大于邮编那个数就代表本次循环有效,也就是这个数组还没有被完全排序完,因此进入下一轮循环,直到任意左边的数小于右边的数的时候,退出排序。
 
以下是我写的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
 
 
 

其他算法会陆续更新,欢迎吐槽。

猜你喜欢

转载自zhonglunshun.iteye.com/blog/2189182