信息技术学科教研
当前登录用户:
教学专题
  • 教学设计
  • 教学课件
  • 学案设计
  • 微课专题
  • 说课专题
  • 教学视频
  • 三种排序

    编辑发布:webdc   时间:2019/8/14 20:44:46   访问量:4896  评论条:  

    #include<iostream>
    using namespace std;
    void read(int a[],int n)
    {
     int i;
     for(i = 0;i<n;i++)
      cin>>a[i];
    }
    void select_sort(int a[],int n)
    {
     int i,j,k;
     for(i = 0;i<n-1;i++)
     {
      k= i; //我认为i就是最小数
      for(j =i+1;j<n;j++)
        if(a[j]<a[k])
           k =j;
      if(k!=i)
      {
       int t =a[k];
       a[k]=a[i];
       a[i]=t;
      }
     }
    }

    void insert_sort(int a[],int n)
    {
     int i,j,temp,p;
     for(i = 1;i<n;i++)//a
     { 
         temp=a[i];//i=n-2;
      for(j=i-1;j>=0;j--)
      {
       if(temp<a[j])
         {
          a[j+1]=a[j];
          p = j;//记录当前位置
         }
         else
           break;
      }
      a[p]=temp;
     }
    }
    void bubble(int a[],int n)
    {
     int i,j;
     for(i = 0;i<n-1;i++)
     {
      for(j =i+1;j<n-i;j++) //j =n-1;a[n-1]
        if(a[j-1]>a[j])
        {
          int t = a[j-1] ;
          a[j-1]=a[j];
          a[j] =t;
        }
     }
     
    }
    void print(int a[],int n)
    {
     int i;
     for(i = 0;i<n;i++)
      cout<<a[i]<<" ";
    }
    int main()
    {
     int i,j,n;
     cin>>n;
     int a[n];
     read(a,n);
    // bubble(a,n);
    // select_sort(a,n);
     insert_sort(a,n);
     print(a,n);
     return 0;
    }

    sjfakl