直接插入 快樂考研

直接插入

考研須知
1.直接插入實現簡單,適用於待排序元素較少且基本有序的情況。在元素基本有序時,需要比較的次數和移動次數很少,因此在這種情況下使用直接插入最佳
2.穩定的排序方法
3.時間複雜度O(n2)
空間複雜度O(1).

#include<iostream>
using namespace std;
void PrintArray(int a[],int n);
int main(){
    int a[]={17,46,42,87,58,9,50,38};
    int t,i,j,n;
    n=sizeof(a)/sizeof(a[0]);
    cout<<"直接插入前:"<<endl;
    PrintArray(a,n); 
    cout<<"直接插入後:"<<endl;
    for(i=1;i<n;i++)  //從第一個元素開始比較 
    {
       t=a[i];
       for(j=i-1;j>=0&&t<a[j];j--)
       a[j+1]=a[j];
       a[j+1]=t;
       PrintArray(a,n)  ;
    }
}
void PrintArray(int a[],int n){
    int i;
    for(i=0;i<n;i++)
    cout<<a[i]<<" ";//這塊我本來寫的是 “cout<<a[i]<<endl;”  造成了數組豎着而不是橫着 
cout<<endl;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章