count9++; //此处有关键字的比较 if(i!=k) { temp=L[i]; L[i]=L[k]; L[k]=temp; //将关键字最小记录与还未排序的第一个数交换 count10+=2; //如果if成立 则关键字有移动(!!!此处有问题 显然if肯定有成立的时候 所以count10会有值 但是测试结果一直是0 搞不清原因) } } } printf(\选择排序后的结果是:\\n关键字比较了%d次\\n关键字移动了%d次\\n \
    for(i=1;i /*int partition(int L[MAXSIZE],int low,int high) {  int temp,t;  int i,j,pos,flag;  int change1,change2;   temp=L[1];               //保存该元素的值  pos=low;                  //记录当前位置  change1=change2=0;             //记录每次比较的起始元素,距离区间头或尾的偏移量    do  {   flag=1;               //没有元素交换   for(i=high-change1;i>=pos+1;i--)           //在左区间进行比较   {           if(L[i] void kspx(int L[MAXSIZE],int b,int t) {  creatdata();  int i;  if(b       行划分      //记录新的      //如果     //从右区间 //如果有元素交     //对区间(b,t)     //左区间进          kspx(L,i+1,t);                //右区间进行划分  } } */  void compare(int L[MAXSIZE]) {  printf(\排序方式 直接 折半 希尔 冒泡 选择\\n\ printf(\比较次数 M M M M M \\n\ printf(\移动次数 M M M M M \\n\}     void menu(int L[MAXSIZE]) {  int x;  printf(\       \\n1 直接排序  4 冒泡排序  7比较数据统计\\n\ printf(\                                     \ printf(\       \\n2 折半排序  5 快速排序(未完成) 0 退出\\n\ printf(\                                     \ printf(\       \\n3 希尔排序  6选择排序\\n\ printf(\                                     \ printf(\请输入对应的序号 查看结果 \\n\ scanf(\ if(x>=0&&x<=7)  {   switch(x)   {   case 0:exit(0);   case 1:zjpx(L);menu(L);break;   case 2:zbpx(L);menu(L);break;   case 3:xepx(L,num);menu(L);break;   case 4:mppx(L);menu(L);break;  // case 5:kspx(L,0,10);menu(L);break;   case 6:xzpx(L);menu(L);break;   case 7:compare(L);menu(L);break;   }  }  else   {   printf(\输入有误!\  menu(L);  }         }   void main() {  creatdata();  FILE* fp;  int i=0;  fp=fopen(\          if(fp==NULL)              {   printf(\错误!\  exit(1);               }   while(!feof(fp))                    件读出数据   fscanf(fp,\  fclose(fp);  printf(\随机生成的数为:\\n\ for(i=0;i 3.实验数据分析:       //只读  //失败  //中止程序   //从文