插入排序,选择排序,交换排序,归并排序;
其中选择排序分为:基础选择排序和堆排序;
交换排序:冒泡排序和快速排序;
归并暂不涉及;
插入排序:通常人们整理桥牌的方法是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。在计算机的实现中,为了给要插入的元素腾出空间,我们需要将其余所有元素在插入之前都向右移动一位。
实现代码:
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>