データ構造並べ替えアルゴリズム
3277 ワード
ソートアルゴリズム
:1.
2.
:1.
2.
:1.
2.
1泡の並べ替え: , , :( -1) , :( )
:
for(int i = n-1;i>0;i--)
{
for(int j =0;j
2.並べ替えの挿入 :( -1) , , , , , , ,
,( , , , , )。
:
for(int i=1,i0 && temp
3.交換ソート temp, temp, arr[temp] arr[0] , temp , , arr[n-1] arr[temp] ,
arr[temp] , temp, 。
:
int temp = 0;
for(int i = 0;iarr[j])
temp = j;
}
if(temp !=i)
{arr[temp] arr[i] }
}
4.快速並べ替え , , , -1 , -1 (
, , , ) 。
:
function(int arr[],int start,int end){
int i = start,j = end,int mid = (start+end)/2;int temp = arr[mid];
while(startarr[start];start++)
if(startmid && temptemp){ arr[mid] = arr[end]; mid = end;}
arr[mid] = mid;
if(mid-start>1) function (arr,start,mid-1);
if(end-mid)>1) funciton (arr,mid+1,end);
}
: :{45 ,38, 66, 90 ,88 ,10 ,25}
45 , , , 。
25 ,25<45 {25 ,38 ,66 ,90 ,88, 10,45}
,
25 , , 。 25 45 45 66,
{25, 38,45,90, 88, 10,66}
66 , 45 , , 。 66 45 ,
45 10, {25, 38,10,90, 88,45, 66}
10 , 45 , 90, {25, 38 ,10,45 ,88 ,90,66}
90 45 , 45 , 。
90 45 45 , 。 , ,
。
{25, 38 ,10,45, 88, 90, 66},
45 45,45 45。 , , 。
5.直接並べ替えを選択する : i , n-1 , n-i+1 , i(1<=i<=n-1)
:
void SelectSort(List R,int n)
{
int min,i,j;
for(i=1;i<=n-1;i++)
{
min = i;
for(j=i+1;j<=n;j++)
{
if(R[j].key
6.ヒルの並べ替え : 【8,9,1,7,2,3,5,4,6,0】
gap=length/2 = 5; 5 ,【8,3】,【9,5】,【1,4】,【7,6】,【2,0】, 5 , 【3,5,1,6,0,8,9,4,7,2】
gap=5/2=2, 2 【3,1,0,9,7】【5,6,8,4,2】, , 【0,2,1,4,3,5,7,6,9,8】
gap=2/2=1, , 1 【0,2,1,4,3,5,7,6,9,8】, , 【0,1,2,3,4,5,6,7,8,9】
:
public static int[] ShellSort(int [] array){
int len = array.length;
int temp,gap = len/2;
while(gap > 0) {
for(int i=gap ;i= 0&& array[preIndex] >temp) {
array[preIndex +gap] =- array[preIndex];
preIndex -= gap;
}
array[preIndex + gap] = temp;
}
gap / =2;
}
return array;
}