排序演算法總結

2021-09-10 21:59:08 字數 1796 閱讀 2664

package com.example.springmvcdemo;

/** * @author shaohui.msh

*/public

class

sort

}int tmp = array[i]

; array[i]

= array[min]

; array[min]

= tmp;}}

/** * 從第二個元素開始,逐個和前面的佇列比較,比他大的就後移

*/public

void

insertsort

(int

array)

array[left +1]

= tem;}}

private

void

quicksort

(int

array,

int left,

int right)

while

(array[j]

> pivot && j > i)

if(i == j)

swap

(i, j, array);}

//基準數換一下

array[left]

= array[i]

; array[i]

= pivot;

quicksort

(array, left, i -1)

;quicksort

(array, i +

1, right);}

private

void

swap

(int left,

int right,

int[

] array)

public

static

void

main

(string[

] args)

;mergsort

(t,0,7

);for(

int i =

0; i < t.length; i++)}

/** * 歸併排序

* @param arr

* @param l

* @param r

*/public

static

void

mergsort

(int

arr,

int l,

int r)

int mid =

(l + r)/2

;//遞迴二分 將陣列分為 [左,中],(中,右]

mergsort

(arr, l, mid)

;mergsort

(arr, mid +

1, r)

;//歸併排序

int aux=

newint

[r - l +1]

;//這裡弄乙個要處理的陣列副本 長度是 r-l+1

for(

int i = l; i <= r; i++

)int i = l, j = mid +1;

//i記錄左邊元素的下標位置 j記錄右邊元素的下標位置

for(

int k = l; k <= r; k++

)else

if(j > r)

else

if(aux[i - l]

< aux[j - l]

)else}}

}

排序演算法總結

1 直接插入排序 1 穩定性 穩定 2 適用情況 待排記錄規模較小,或者記錄已經基本有序 2 希爾排序 1 穩定性 不穩定 2 特點 希爾排序的執行時間依賴於增量序列,它的效率比直接插入排序有較大的改進。3 氣泡排序 1 穩定性 穩定 2 特點 當待排記錄基本有序是,氣泡排序是不錯的選擇 但由於氣泡...

排序演算法總結

1 選擇排序 選擇排序的思想是依次從待排序數列中選擇最大 小 的 第二大 小 的等等,然後依次重新排列為有序數列。void selectionsort int a,int n if min i 時間複雜度o n 2 2 歸併排序 void merge int a,int left,int mid,i...

排序演算法總結

學習了這麼多的排序演算法,還沒有做個總結,呵呵 氣泡排序 氣泡排序是最慢的排序演算法。在實際運用中它是效率最低的演算法。它通過一趟又一趟地比較陣列中的每乙個元素,使較大的資料下沉,較小的資料上公升。它是 o n 2 的演算法。快速排序 快速排序是乙個就地排序,分而治之,大規模遞迴的演算法。從本質上來...