演算法筆記 008 選擇排序和氣泡排序 蠻力法

2021-09-08 04:24:14 字數 2433 閱讀 3746

目錄

1 問題描述

2 解決方案

2.1 選擇排序原理簡介

2.2 具體編碼(選擇排序)

2.3 氣泡排序原理簡介

2.4 具體編碼(氣泡排序)

給定乙個可排序的n元素序列(例如,數字、字元和字串),將它們按照非降序方式重新排列。

選擇排序開始的時候,我們從第乙個元素開始掃瞄整個列表,找到它的最小元素,然後和第乙個元素交換,將最小元素和第乙個元素交換位置;然後,我們從第二個元素開始掃瞄剩下的n-1個元素,找到這

n-1個元素中的最小元素,將最小元素和第二個元素交換位置;然後從第三個元素開始掃瞄

...一般來說,就是從第

i個元素開始掃瞄,找到第

n-i+1

個元素中的最小元素,將最小元素與第

i個元素交換位置。這樣,在進行

n-1次遍歷後,該列表就排好序了。

package

com.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    4568

9089排序第6趟:17 29 34 45 688990

我們從列表的第乙個元素開始,比較列表中相鄰的兩個元素,如果第乙個元素大於第二元素,則交換這兩個元素的位置,否則就從第二個元素位置開始重複上一步操作。重複多次以後,最大的元素就「沉到」列表的最後乙個位置。這樣一直做,直到n-1

遍以後,該列表就排好序了。

package

com.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...