排序演算法1

2021-10-10 15:39:28 字數 2697 閱讀 7117

原理:

兩個數比較大小,較大的數往後移動,較小的數往前移動

演算法描述:

比較相鄰的元素。若第乙個數比第二個大,就交換它們兩個;

對每一對相鄰元素做比較操作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數;

針對所有的元素重複以上的步驟,除了最後乙個;

重複步驟1~3,直到排序完成。

**實現:

public

static

void

main

(string[

] args)

; system.out.

println

("陣列a為:");

system.out.

println

(arrays.

tostring

(a))

;for

(int i=

0;i1;i++)}

} system.out.

println

("經過氣泡排序後的陣列a為:");

system.out.

println

(arrays.

tostring

(a))

;}

原理:

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。

**實現:

public

static

void

main

(string[

] args)

; system.out.

println

("陣列a為:");

system.out.

println

(arrays.

tostring

(a))

;//方法一:(缺點)交換次數多

// for (int i=0;i< a.length-1;i++)

// }

// }

// system.out.println(arrays.tostring(a));

//方法二:(每一輪比較只交換一次元素)

for(

int i=

0;i1;i++)}

int temp=a[i]

; a[i]

=a[minindex]

; a[minindex]

=temp;

} system.out.

println

("經過選擇排序後的陣列a為:");

system.out.

println

(arrays.

tostring

(a))

;}

原理:

在要排序的一組陣列中,假定前n-1個數已經排好序,現在將第n個數插到前面的有序陣列中,使得這n個數也是排好順序的。如此反覆迴圈,直到全部排好順序。

演算法描述:

從第乙個元素開始,該元素可以認為已經被排序;

取出下乙個元素,在已經排序的元素序列中從後向前掃瞄;

如果該元素(已排序)大於新元素,將該元素移到下一位置;

重複步驟3,直到找到已排序的元素小於或者等於新元素的位置;

將新元素插入到該位置後;

重複步驟2~5。

**實現:

public

static

void

main

(string[

] args)

;// for (int i = 0; i < a.length; i++)

// }

// }

// system.out.println(arrays.tostring(a));

//方法二:

int[

] a=

; system.out.

println

("陣列a為:");

system.out.

println

(arrays.

tostring

(a))

;int current;

//當前的,現在的

for(

int i=

0;i1;i++

) a[preindex+1]

=current;

//把當前元素插入到比較元素的位置

} system.out.

println

("經過選擇排序後的陣列a為:");

system.out.

println

(arrays.

tostring

(a))

;}

排序 排序演算法1

所謂氣泡排序就是,一組資料,以遞增的順序來說明,從第乙個數data 0 開始,依次和後面的資料比較大小,如果data 0 大於當前位置上的數就和這個數交換位置並繼續和後面的數相比,如果遇到比自己大的數了,就不交換 下一次開始的位置是data 1 然後依次往後推。void myswap int num...

排序演算法 1 選擇排序演算法

這篇部落格分為兩個部分 選擇排序演算法基本思想 實現與解析 由於這個排序演算法比較簡單,因此這篇博文就不做過多解釋了 一.選擇排序演算法基本思想 1 選擇排序 小到大排序 1.遍歷所有未排序的元素 找到最小的那個元素 2.將這個元素與未排序序列的第乙個元素交換位置 3.當剩下乙個元素時 排序結束 o...

排序演算法 1

二 高階排序演算法 高階排序演算法中我們將只介紹這一種,同時也是目前我所知道 我看過的資料中 的最快的。它的工作看起來仍然象乙個二叉樹。首先我們選擇乙個中間值middle程式中我們使用陣列中間值,然後 把比它小的放在左邊,大的放在右邊 具體的實現是從兩邊找,找到一對後交換 然後對兩邊分別使 用這個過...