目录
1.快排
基本思想是:通过一趟排序将要排序的数据分割成独立的两 部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排 序,整个排序过程可以递归进行 ,以此达到整个数据变成有序序列。
public void quickSort(int[] nums,int m,int n){
if(m>=n)
return;
int base=nums[m];
int i=m;
int j=n;
while(i<j){
while(nums[j]>=base&&i<j){//从n开始往左找,直到遇到比base大的
j--;
}
while(nums[i]<=base&&i<j){//从m开始往右找找,直到遇到比base大的
i++;
}//上下两个while不可颠倒,要注意
if(i<j){//当i<j时,交换两个数
int tem=nums[i];
nums[i]=nums[j];
nums[j]=tem;
}
}
nums[m]=nums[i];//i的值与m的值交换
nums[i]=base;
quickSort(nums,m,i-1);//递归排序左部分
quickSort(nums,i+1,n);//递归排序右部分
}
2.冒泡
冒泡排序( Bubble Sorting )的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始) , 依次比较 相邻元素的值,若发现逆序则交换 ,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。优化:因为排序的过程中,各元素不断接近自己的位置, 如果一趟比较下来没有进行过交换,就说明序列有序