插入排序,選擇排序,交換排序,歸併排序;
其中選擇排序分爲:基礎選擇排序和堆排序;
交換排序:冒泡排序和快速排序;
歸併暫不涉及;
插入排序:通常人們整理橋牌的方法是一張一張的來,將每一張牌插入到其他已經有序的牌中的適當位置。在計算機的實現中,爲了給要插入的元素騰出空間,我們需要將其餘所有元素在插入之前都向右移動一位。
實現代碼:
public void insertSort(){
int temp;
for(int i=1;i<paramArray.length;i++){
for(int j=i;j>0;j--){
if(paramArray[j] < paramArray[j-1]){
temp =paramArray[j];
paramArray[j]=paramArray[j-1];
paramArray[j-1]=temp;
}
}
}
}
選擇排序:首先,找到數組中最小的那個元素,其次,將它和數組的第一個元素交換位置(如果第一個元素就是最小元素那麼它就和自己交換)。再次,在剩下的元素中
找到最小的元素,將它與數組的第二個元素交換位置。如此往復,直到將整個數組排序。
實現代碼:
public void selectSort(){
int temp;
for(int i=0;i<paramArray.length;i++){
for(int j=i+1;j<paramArray.length;j++){
if(paramArray[i] < paramArray[j]){
temp =paramArray[i];
paramArray[i]=paramArray[j];
paramArray[j]=temp;
}
}
}
}
交換排序->冒泡排序:
實現代碼:
public void maopaoSort(){
int temp;
for(int i=0;i<paramArray.length-1;i++){
for(int j=0;j<paramArray.length-1;j++){
if(paramArray[j] < paramArray[j+1]){
temp =paramArray[j];
paramArray[j]=paramArray[j+1];
paramArray[j+1]=temp;
}
}
}
}
快速排序:
實現代碼:
public void quickSort(int left, int right, int baseP){
if(left > right){
return;
}
int i,j,temp,t;
i = left;
j = right;
temp = paramArray[baseP];
while(i != j){
while(paramArray[j] >= temp && i<j){
j--;
}
while(paramArray[i] <= temp && i < j){
i++;
}
if(i<j){
t = paramArray[i];
paramArray[i] = paramArray[j];
paramArray[j] = t;
}
}
paramArray[baseP] = paramArray[i];
paramArray[i] = temp;
quickSort(left,i-1,left);
quickSort(j+1,right,j+1);
}
<a href="https://code.csdn.net/snippets/2600839#nogo">完整實現代碼</a>