直接插入 快乐考研

直接插入

考研须知
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;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章