這一個排序法一開始我也是不太了解
拜讀了
杰瑞:http://jerry17768java.blogspot.tw/2012/08/bubble-sort.html
yehyeh:http://notepad.yehyeh.net/Content/Algorithm/Sort/Insertion/1.php
這個演算法的概念,也是有著已排序跟未排序 ,他主要的目的就是將一個未排序的數字插入以排序的數字中
int n=6;
int a[n]={13,11,25,7,8,9};
//插入排序就是找一個先排序接著,再從整個資料掃瞄找到適當位置插入
//"被插入的資料就會往後"排序
int tmp;
for(int i=1;i<(n);i++){
//i=1是因為假設好有一個已經排序過
tmp=a[i];
//這邊用tmp是因為它是一個數去跟其他數比大小再插入
while(tmp<a[i-1]&&i>=0){//防止i小於負1
//i-1 代表上一個 以排序過的
a[i]=a[i-1];
//代表位置讓給別人 所以原本a[i]的tmp 是 沒有在任何位置上的 比他的的數字向右挪
i--;
}
a[i]=tmp; //所以最後確定沒比其他人小才給他位置 最後撈到的就是那一個a[i]
}
for(int i=0;i<n;i++){
cout<<a[i]<<endl;
}
留言列表