java冒泡排序和選擇排序(面試題)
冒泡排序缺點:時刻比較,性能不好
冒泡排序特點:第一次循環(huán)結(jié)束,確定最大的在最后,以此類推
選擇排序特點:第一次從R[0]~R[n-1]選最小值,與R[0]交換,以此類推
public class TextSort {
arrs={15,222,30,50,2,66};
//定義最小值
//使用arrs.length-1 目的是不循環(huán)最后的數(shù),
//假設最小數(shù)的索引為第out個
//內(nèi)層循環(huán)從out+1開始
//如果得到比arrs[min]還小的數(shù)
//將比較小的數(shù)的索引,給min
//如果這個索引不是第out項(當前指定的最小數(shù)min=out)則交換,省略一個交換步驟
//不用第三個變量實現(xiàn)交換
(int i = 0; i < arrs.length; i++)
{
}
--------------------------------------------
補充:
兩個數(shù)值變換,不定義第三個變量,實現(xiàn)互換操作
int a=1;
int b=2;
a=a+b;
b=a-b;
a=a-b;
上述例子中:
可以不用min接收最小數(shù)
代碼改為:
arrs[i]=arrs[i]+arrs[j];
arrs[j]=arrs[i]-arrs[j];
arrs[i]=arrs[i]-arrs[j];