目錄1 問題描述
2 解決方案
2.1 選擇排序原理簡介
2.2 具體編碼(選擇排序)
2.3 氣泡排序原理簡介
2.4 具體編碼(氣泡排序)
給定乙個可排序的n元素序列(例如,數字、字元和字串),將它們按照非降序方式重新排列。
選擇排序開始的時候,我們從第乙個元素開始掃瞄整個列表,找到它的最小元素,然後和第乙個元素交換,將最小元素和第乙個元素交換位置;然後,我們從第二個元素開始掃瞄剩下的n-1個元素,找到這
n-1個元素中的最小元素,將最小元素和第二個元素交換位置;然後從第三個元素開始掃瞄
...一般來說,就是從第
i個元素開始掃瞄,找到第
n-i+1
個元素中的最小元素,將最小元素與第
i個元素交換位置。這樣,在進行
n-1次遍歷後,該列表就排好序了。
packagecom.liuzhen.chapterthree;
public
class
selectionsort
//交換a[i]和a[min]的值
temp =a[i];
a[i] =a[min];
a[min] =temp;
//列印輸出每一次選擇排序結果
system.out.print("排序第"+(i+1)+"趟:");
for(int p = 0;p < a.length;p++)
system.out.print(a[p]+"\t");
system.out.println();}}
public
static
void
main(string args);
getselectionsort(a);
}}
執行結果:
排序前: 89 45 68 90 29 34 17排序第1趟:1745 68 90 29 3489排序第2趟:172968 904534 89排序第3趟:17 293490 456889排序第4趟:17 29 34459068 89排序第5趟:17 29 34 456890
89排序第6趟:17 29 34 45 688990
我們從列表的第乙個元素開始,比較列表中相鄰的兩個元素,如果第乙個元素大於第二元素,則交換這兩個元素的位置,否則就從第二個元素位置開始重複上一步操作。重複多次以後,最大的元素就「沉到」列表的最後乙個位置。這樣一直做,直到n-1
遍以後,該列表就排好序了。
packagecom.liuzhen.chapterthree;
public
class
bubblesort
}//列印輸出每一次選擇排序結果
system.out.print("排序第"+(i+1)+"趟:");
for(int p = 0;p < a.length;p++)
system.out.print(a[p]+"\t");
system.out.println();}}
public
static
void
main(string args);
getbubblesort(a);
}}
執行結果:
排序前: 89 45 68 90 29 34 17排序第1趟:45 68 89 29 34 1790排序第2趟:45 68 29 34 1789 90排序第3趟:45 29 34 1768 89 90排序第4趟:29 34 1745 68 89 90排序第5趟:29 1734 45 68 89 90排序第6趟:1729 34 45 68 89 90
演算法筆記 008 選擇排序和氣泡排序 蠻力法
目錄 1 問題描述 2 解決方案 2.1 選擇排序原理簡介 2.2 具體編碼 選擇排序 2.3 氣泡排序原理簡介 2.4 具體編碼 氣泡排序 給定乙個可排序的n元素序列 例如,數字 字元和字串 將它們按照非降序方式重新排列。選擇排序開始的時候,我們從第乙個元素開始掃瞄整個列表,找到它的最小元素,然後...
排序 選擇 冒泡 快排
簡單介紹三種常見的排序方法 選擇 冒泡 快排。從大到小排列 選擇排序是在所有資料中先選擇第乙個資料作為最大值,依次和後面的每乙個資料比較,如果比最大值大,替換最大值並且記住索引,遍歷結束後,通過索引把最大值和第乙個資料替換。後面的資料依次執行一遍,就可以得到從大到小排列的資料了。如下 4 void ...
排序演算法 冒泡和選擇排序
氣泡排序的基本思想是 通過對待排序序列從前向後 從下標較小的元素開始 依次比較 相鄰元素的值,若發現逆序則交換,使值較大的元素逐漸從前移向後部,就象水底下的氣泡一樣逐漸向上冒。氣泡排序演算法 public static int maopaosort int initial return initia...