相信大家都有打撲克的經歷,那麼我們今天的插入排序就以拿牌為例開始講(注意只是舉例,不是按打牌的規則哦)
1.我們拿到了一張牌3,我們把它放手裡,現在手裡有牌[3]
2.我們拿到了一張牌1,拿它與手裡最後一張牌也就是3比較,發現1比3小,所以我們把它插入到3的前面,現在手裡有牌[1,3]
3.我們拿到了一張牌0,拿它與手裡最後一張牌也就是3比較,發現0比3小,所以我們把它插入到3的前面,接著與3的上一張比較發現0比1還小,那麼就把0在插入到1的前面,現在手裡有牌[0,1,3]
4.我們拿到了一張牌2,拿它與手裡最後一張牌也就是3比較,發現2比3小,所以我們把它插入到3的前面,接著與3的上一張比較發現2比1大,那麼就不需要動了,現在手裡有牌[0,1,2,3]
5.我們拿到了一張牌8,拿它與手裡最後一張牌也就是3比較,8比3大,那麼就不需要動了,現在手裡有牌[0,1,2,3,8]
6.。。。
現在你明白什麼叫做插入排序了麼?
如果你不明白的話也沒關係,我還專門畫了一張圖:
接下來上**
int num=newint;
for (int i=1,n=num.length;iif(num[i]}}
}for (int i:num)
死磕演算法之選擇排序
假如我們現在要排序的陣列為 3,1,0,2,8,4,2 那麼選擇排序的排序流程為 在這個陣列中找出最小值與第乙個元素交換,現在陣列為 0,1,3,2,8,4,2 在這個陣列中除了第乙個位置的元素外找出最小值與第二個元素交換,因為第二個元素就是最小的所以此次沒有發生變化。現在陣列為 0,1,3,2,8...
死磕演算法之堆排序
堆排序主要是運用了二叉樹的性質來進行的排序。在進行堆排序之前我們先了解一下二叉樹的幾個性質 1.在排序使用二叉樹的時候我們要排序的陣列的第0個位置其實是不可以用的,這個時候如果我們要排序的陣列為 3,1,0,2,8,4,2 時,我們首先要把它變為 0,3,1,0,2,8,4,2 我們把他轉換為二叉樹...
死磕演算法之快速排序
快速排序是乙個運用了分治法和遞迴演算法的排序方式。假如我們現在要排序的陣列為 3,1,0,2,8,4,2 那麼在進行快速排序的時候我們先要進行一些準備 下面開始排序 先從陣列右邊開始,我們發現j指向的元素2比標桿n小,那麼我們將j指向的元素賦值給i指向的元素,停止操作。此時陣列為 2,1,0,2,8...