常用的排序演算法回顧

2021-08-26 23:47:09 字數 1793 閱讀 5932

public

class 排序演算法 ;

static

int nums1 = ;

static

int nums2 = ;

static

int positivenums = ;

static

int reversenums = ;

public

static

void

main(string args)

// 氣泡排序

/* * 原理:從陣列中最下面的元素與上面的元素進行比較,比上面的小,就交換。

* 交換後在與其前乙個進行比較,如果還比其小,就再與前乙個進行比較,以此類推。

* 一遍遍歷後,會將最小的元素放到最前面,下次遍歷則從最下面的元素遍歷到最前的元素-1個即可。

*/public

static

void

bubblesort(int arrays) }}

system.out.println("\t" + "交換次數:" + changetimes + " 次");

}public

static

void

swap(int arrays, int a, int b)

// 插入排序

/* * 原理:初始化陣列只有乙個元素,將剩餘元素每次都與陣列內的元素從後向前進行比較,

* 如果比前面的元素小,則將大的數進行向後移動,給這個新增的小的元素騰出位置,最後放入。

* */

public

static

void

insertsort(int arrays) }}

system.out.println("\t" + "交換次數:" + changetimes + " 次");

}// 希爾排序 使用步長進行排序

/* *原理:優化的插入排序。

* 將一組待插入排序的陣列,按照步長進行分組,每次劃分的單元越來越小,最後步長為0時,則為整個陣列都排好序列了

* */

public

static

void

shellsort(int arrays) }}

}system.out.println("\t" + "交換次數:" + changetimes + " 次");

}// 快速排序

/* *

* 先找出最左邊的數為基數,將從右邊選比基數小的數放左邊,從左邊選比基數大的數放右邊。

* 分治演算法+遞迴,最後得出最終排好序的佇列。

*/public

static

void

fastsort(int arrays)

public

static

void

quicksort(int arrays, int l, int r)

int left = l;

int right = r;

intbase = arrays[l];

boolean directiontoright = true;// 初始化方向從左到右

l: while (left < right)

}left = right;

}else

}right = left;}}

arrays[left] = base;

quicksort(arrays,l,left-1);

quicksort(arrays,left +1,r);

}}

回顧幾種簡單的排序演算法

第一次寫部落格希望能寫的好一點把 回顧了一下幾種經典的排序演算法 氣泡排序 選擇排序 快速排序 插入排序。氣泡排序是一種簡單的排序演算法,它通過從前往後比較相鄰元素,使得較大的數向後 冒 每一趟可以確定乙個最大的數。相當於在末尾不斷排乙個反向的降序序列。從前往後比較相鄰的元素,如果前乙個元素比後乙個...

演算法快速回顧 排序演算法

常用排序演算法有以下幾種 氣泡排序 插入排序 快速排序 歸併排序 堆排序。本文將對五種常用演算法分析並實現。交換兩個元素的值 這裡列出幾種不同寫法 void swap int a,int b void swap int a,int b void swap int a,int b 氣泡排序 原理 比較...

學習回顧演算法(選擇排序)

選擇排序比氣泡排序演算法時間上要優秀一點,主要在於冒泡演算法每次比較都要交換位置,而選擇排序通過記錄最大或最下位置的索引,最後只交換一次位置就可以了。選擇排序演算法原理 每一次從待排序的元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,知道全部待排序的資料排完。例子 待排序的初始序列為 49...