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