原理闡述:就像打牌一樣,拿到手上的是無序的牌,從第二張開始,將牌一張一張與前面的比較,遇到第乙個比自己小的,就插在它後面,依次執行到最後一張,結束後,就排好序了
note:
3 5 2 1
以2為例
3 2 5 1
2 3 5 1
2 3 1 5
2 1 3 5
1 2 3 5
**實現
package 排序;
import edu.princeton.cs.algs4.stddraw;
import edu.princeton.cs.algs4.stdin;
import edu.princeton.cs.algs4.stdout;
public
class
insertion }}
private
static
boolean
less(comparable x,comparable y)
private
static
void
exch(comparable a, int x, int y)
private
static
void
show(comparable a)
}private
static
boolean
issort(comparable a)
return
true;
}@suppresswarnings("deprecation")
public
static
void
main(string args)
}
《演算法(第四版)》排序 插入排序
插入排序與選擇排序一樣,當前索引左邊的所有元素都是有序的,但和選擇排序不一樣的是它們的位置不是固定的,可能為了更小的元素騰出空間,它們向後移動,但是當索引達到陣列的右端時,陣列排序就完成了 使用插入排序為一列數字進行排序的過程 具體演算法描述如下 從第乙個元素開始,該元素可以認為已經被排序 取出下乙...
演算法 第四版 之選擇排序和插入排序
排序在我們的生活和生產中是很重要的,據說在計算時代早期,大家普遍認為30 的計算週期都用在了排序上,現在的這個比例下降了,原因可能是排序演算法更加高效,但絕不可能是因為排序的重要性降低了 這篇文章不會像書上說的那樣實現comparable介面,接下來的所有 都將是對整型陣列的操作 選擇排序的思路很簡...
《演算法(第四版)》排序 模板
本書對排序類演算法有乙個模板,包括了以下幾種方法 1 sort 這個方法裡面實現的就是排序的演算法 2 less 這個方法裡是利用了comparable介面裡的compareto方法,其中compareto方法對於本物件與傳入的比較物件小於,等於,大於,分別返回負數,0,正數 這個方法如果compa...