常見的幾種排序

2021-06-27 03:45:20 字數 2441 閱讀 7965

常見的排序:

選擇排序     直接選擇排序         堆排序

交換排序     氣泡排序                 直接交換排序

插入排序     直接插入排序         shell排序                折半插入排序

歸併排序

基數排序

1.選擇排序

1.1直接選擇排序

//選擇排序-直接選擇排序   每迴圈一次取出其中最大或者最小的乙個   插入到靠前或者靠後的位置(當然第一次從0開始,第二次從1開始...)

public void directselectsort(int arr)}}

system.out.println("結束"+arrays.tostring(arr));

}

1.2堆排序

//選擇排序-堆排序2

//選擇排序-堆排序1    把陣列或者其他物件 看成一棵樹  ,

//利用大堆或者小堆,找到最大的,放到最後的位置,比較的時候注意:第一次陣列長度為3,第二次陣列長度為2...

//為什麼變陣列大小?因為我們每次得到的最大,最小值要插入都後面的位置中,就不需要在比較了。

public void heapselectsort(int arr)

} system.out.println("結束"+arrays.tostring(arr));

}

2.2 快速交換排序

//交換排序-快速交換排序1

public void quickexchangesort(int arr)

//交換排序-快速交換排序2

private void quickexchangesort(int arr,int start,int end)

else

int tmp=arr[start];

arr[start]=arr[i-1];

arr[i-1]=tmp;

}}else

} if(start<(j-1))

if(end>j+1)

}

3.插入排序

3.1直接插入排序

//直接插入排序(穩定的)    先從陣列第乙個開始,   乙個數是有序的,然後第二個數與第乙個數比較,如果第二個小,換,如果第二個數大,不換,比較第三個,以此類推

public void directinsertsort(int arr)

arr[j]=tmp;}}

} system.out.println("結束"+arrays.tostring(arr));

}

3.2折半插入排序

//折半插入排序

public void halfinsertsort(int arr)else

}for(int j=i;j>low;j--)

arr[low]=tmp;

}system.out.println("結束"+arrays.tostring(arr));

}

3.3希爾排序

//希爾排序    分段 增量    此演算法為參考

public void shellinsertsort(int array)

array[j*h+i]=n;}}

m++;}}

system.out.println("增量為"+h+":"+arrays.tostring(array));

h = (h - 1) / 3;

}system.out.println("結束"+arrays.tostring(array));

}

4.歸併排序

//歸併排序

public void combinesort(int arr)

private void combinesort(int arr, int i, int length)

} int size=(""+tmp).length();

"size="+size);

this.value(1, 76));

for(int k=0;kthis.value(k, arr[m]))

"**"+arrays.tostring(arr));}}

system.out.println("--"+arrays.tostring(arr));

} system.out.println("結束"+arrays.tostring(arr));

}//基數排序

private int value(int i,int key)

key=key%10;

return key;

}

常見的幾種排序

前言 最近聽公尺老師講了一遍排序,之前上課老師也講過,這次又聽了一遍,對排序有了更進一步的認識。接下來介紹一下最常見的幾種排序,以及自己對排序的理解。插入排序 插入排序包括 直接插入排序與shell排序 1.直接插入排序 概念 通過線性搜尋來確定待插入記錄的位置 演算法 圖中每一行的資料表示插入了第...

幾種常見的排序

1 插入排序 for int i 1 i n i 2 氣泡排序 for int i 0 i n 1 i 3 選擇排序 for int i 0 i n 1 i swap array,i,lowindex 4 快速排序 void swap int a,int i,int j int partition ...

常見的幾種排序

一 氣泡排序 二 直接選擇排序 三 直接插入排序 四 希爾排序 五 快速排序 快速排序三種找基準方式及兩種優化 六 堆排 七 歸併排序 時間複雜性 一般平均是o n 2 最好的情況是o n 最壞的情況是o n 2 空間複雜性 o 1 穩定性 穩定排序。氣泡排序的原理 1 比較相鄰的元素。如果第乙個比...