2012年5月3日 星期四
插入排序(未整理)
Insertion Sort( 插入排序 )
主要概念:
陣列內容: 7,3,5,6,1
指定比較的陣列元素為,從陣列開頭的第二個位置,開始比較,指定的陣列位置會不斷的遞增。
如果,指定的陣列元素小於目前指到的陣列元素,就將目前指到的陣列元素放在指定陣列元素的位置。
依序做到條件結束。
範例:
7,3,5,6,1(指定比較為第2個位置)
->3,7,5,6,1
3,7,5,6,1(指定比較為第3個位置)
->3,5,7,6,1
3,5,7,6,1(指定比較為第4個位置)
->3,5,6,7,1
3,5,6,7,1(指定比較為第5個位置)
->3,5,6,,7
->3,5,,1,6,7
->3,,5,6,7
->1,3,5,6,7
程式碼:
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int a[5]={12,2,4,1,0};
for(int i=0; i<5; i++)
cout << setw(3) << a[i] << " ";
cout << endl;
for(int i=1; i<5; i++){
int tmp =a[i];
int j;
for(j=i-1; j>=0 && tmp<a[j]; j--){
a[j+1]=a[j];
cout << "chg = " << setw(3) << a[j+1];
}
cout << endl;
a[j+1]=tmp;
cout << a[j+1] << endl;
for(int i=0; i<5; i++)
cout << setw(3) << a[i] << " ";
cout << endl;
}
for(int i=0; i<5; i++)
cout << setw(3) << a[i] << " ";
cout << endl;
system("pause");
return 0;
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言