zoukankan      html  css  js  c++  java
  • 冒泡排序,直接选择排序,插入排序实现

    /*
     Sort
      programmer:qpz
      time:2014-11-02
    */
    #include <stdio.h>
    #define MAX 10
    //冒泡排序法 
    void BubbleSort(int *data,int n);
    //直接插入排序法
    void StraightInsertion(int *data,int n);
    //选择排序法
    void choiceSort(int *data,int n); 
    void PrintArr(int *,int);
    //void SortVerdict(bool n); 
    int main(void)
    {
    int a[MAX]={5,2,92,28,25,52,29,59,9,55};
      //  bool n;
      PrintArr(a,MAX);
    // BubbleSort(a,MAX);
    // StraightInsertion(a,MAX);
        choiceSort(a,MAX);
    PrintArr(a,MAX);
    return 0;
    }
    void PrintArr(int *a,int n)
    {
    int i;
    for(i=0;i<n;i++){
    printf("%3d",a[i]);
    }
    printf(" ");
    }
    //冒泡排序 
    void BubbleSort(int *data,int n)
    {
      int i,j;
      int t,flag=1;
      for(i=0;i<n&&flag;i++){
      flag=0;
      for(j=n-1;j>i;j--){
      if(data[j]<data[j-1]){
       t=data[j];
    data[j]=data[j-1];
    data[j-1]=t;
    flag=1;
      }//if
      }//for
      }//for
    }
    //直接插入排序 
    void StraightInsertion(int *data,int n)
    {
    int p,i;
    int j;
    for(i=1;i<n;i++){
    p=data[i];//保存无序区间的第一个值 
    //寻找插入点 
    for(j=i-1;j>=0&&data[j]>p;j--){ data[j+1]=data[j];}
    //插入 
    data[j+1]=p;
    } //for
    }
    //直接选择排序法 
    void choiceSort(int *data,int n)
    {
    int i,j,min;
    for(i=0;i<n;i++){
    for(j=i,min=i;j<n;j++){
    if(data[j]<data[min]){
    min=j;
    }//if 
    }//for 2 
    if(min-i){
    data[i]=data[i]^data[min];
    data[min]=data[i]^data[min];
    data[i]=data[i]^data[min];
    }//if 
    }//for
     
    }

     
  • 相关阅读:
    codevs 1766 装果子
    codevs 1415 比那名居天子
    codevs 1388 砍树
    codevs 1373 射命丸文
    codevs 2867 天平系统3
    codevs 2866 天平系统2
    codevs 2865 天平系统1
    codevs 2832 6个朋友
    广搜优化题目总结
    Codeforces Round #578 (Div. 2)
  • 原文地址:https://www.cnblogs.com/pzqu/p/9457680.html
Copyright © 2011-2022 走看看