資料結構和演算法 1 選擇排序 插入排序

2021-08-03 16:59:08 字數 1195 閱讀 4781

一、選擇排序

/**

* * @author eric

* 從最左邊下標開始,將該下標的元素和它右邊所有元素比較,每一趟遍歷找出最小元素的下標

* 然後將最小下標的元素和每一趟遍歷開始的最左邊下標的元素互換,即每一趟遍歷都將最小值放在開始遍歷的最左的下標位置

*/public

class

selectionsort

public

static

void

sort

(int

arr)

}// 交換開始遍歷的最左和最小下標的元素

if(i != minindex)}}

/** * 交換兩個下標的元素

* * @param arr 要排序的陣列

* @param i 下標1

* @param j 下標2

*/private

static

void

swap

(int

arr,

int i,

int j)

}

/**

* * @author eric

* */

// 實現了comparable介面的類,支援排序

public

class

student

implements

comparable

// 定義student的compareto函式

// 如果分數相等,則按照名字的字母序排序

// 如果分數不等,則分數高的靠前

@override

public

intcompareto

(student that)

// 定義student例項的列印輸出方式

@override

public string tostring()

}

二、插入排序

int j;

for(

int i =

1; i < intarray.length; i++

) intarray[j]

= temp;

}

時間複雜度:==> 對於幾乎有序的陣列,插入排序效果非常高,時間複雜度近乎o(n)

資料結構之簡單演算法(氣泡排序 選擇排序 插入排序)

簡單的js資料 實現氣泡排序 1.定義乙個簡單的無序陣列 var num 12,13,10,31,11,19 2.反向迴圈,每次剔除最右邊的數,因此次數越來越少 for var j num.length 1 j 0 j 選擇排序是對氣泡排序的改進,比氣泡排序的效率高一點,但與其他演算法比較效率較低 ...

資料結構和演算法 冒泡 選擇 插入排序演算法

比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數 也就是第一波冒泡完成 針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。如下 publ...

資料結構 排序演算法 插入排序 選擇排序

今天我們來總結一下資料結構中各種排序演算法。資料結構排序演算法 part1 直接插入排序 思想 當插入第i i 1 個元素時,前面的array 0 array 1 array i 1 已經排好 序,此時用array i 的排序碼與array i 1 array i 2 的排序碼順序進行比較,找到插入...