| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2684 人关注过本帖
标题:如何编写一个用插空法对n个数排序的程序
只看楼主 加入收藏
旦波
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-5-4
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:13 
如何编写一个用插空法对n个数排序的程序
让我做一回伸手党吧 谢谢各位大大~
搜索更多相关主题的帖子: 如何 
2011-05-04 13:21
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
插空法? 没听说过。

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-04 14:34
旦波
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-5-4
收藏
得分:0 
上网搜了一下,也没搜到,不知道我们老师是不是自创的。。。。
2011-05-04 15:05
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
排序的方法挺多的吧,用自己熟悉的吧

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-04 15:11
prl111
Rank: 2
等 级:论坛游民
帖 子:3
专家分:15
注 册:2011-5-4
收藏
得分:0 
#include "stdafx.h"
#define N 8
//整数的插入排序
int main(int argc, char* argv[])
{
    int x[8]={7,8,5,6,3,4,1,2};
    int tmp;
    for(int i=1; i<N; i++)
    { // 第i趟:将x[i]插入到有序序列x[0] ……x[i-1]中
      tmp=x[i];  //让位
      // 循环比较、移位
      for(int j=i-1; j>=0 && x[j]>tmp; j--)
         x[j+1]=x[j];
      x[j+1]=tmp;    //归位
    }
    for(i=0; i<N; i++)
        printf("%d ",x[i]);
    printf("\n");
    return 0;
}



2011-05-04 17:01
canxden
Rank: 3Rank: 3
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
注 册:2011-3-18
收藏
得分:15 
程序代码:
#include <stdio.h>
void print_date (int a,int b) {
   printf("n = %d , m = %d",a,b);
}

int pailie (int a,int b) {
    int tmp = 1;
    for (b--;0!=(b+1);b--) {
         tmp*=(a-b);
    }
    return tmp;
}


int zuhe (int a,int b) {
    int c,d=1,e=1;
    c=b;
    for (--c;(c+1)!=0;--c) {
       d*=(a-c);
    }
    c=b;
    for (--c;(c+1)!=0;--c) {
       e*=(b-c);
    }
  return d/e;
}

int main (void) {
   int x,y,i,tmp,choose;
   printf("input 2 number\n");
   printf("the one=");
   scanf("%d",&x);
   printf("the two=");
   scanf("%d",&y);
   if (y>x){
     i=x;
     x=y;
     y=i;
   }
     do {
       printf("\n m A n input 1 \t m C n input 2 :");
       scanf("%d",&choose);
     } while (choose>2);

   print_date (x,y);

   switch (choose) {
     case 1:
       tmp = pailie (x,y);
       printf("\n n A m =%d\n",tmp);
       break;
     case 2:
       tmp = zuhe (x,y);
       printf("\n n C m =%d\n",tmp);
       break;
   }
  scanf("%d",&i);

 return 0;
}


以前写了一个排列组合的,参考下吧,说实话,我没听懂楼主具体要干嘛,,,

一个人能有多坚强,太安静,就成了孤单。
2011-05-04 17:26
canxden
Rank: 3Rank: 3
来 自:江西奉新
等 级:论坛游侠
帖 子:114
专家分:105
注 册:2011-3-18
收藏
得分:0 
你说清楚点,我修改下就可以了,具体要求是什么,具体,

一个人能有多坚强,太安静,就成了孤单。
2011-05-04 17:28
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
什么是插空法?
2011-05-04 17:34
旦波
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-5-4
收藏
得分:0 
回复 6楼 canxden
比如说:从小到大排序,运用数组,首先a[0]和a[1]比,交换位置;a[1]和a[2]比较,交换位置;a[0]和a[1]再进行比较,交换位置;以此类推...
   也就是两个数相邻交换位置后,再与前一个数比......
2011-05-04 18:10
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:5 
晕 是插入法

                                         
===========深入<----------------->浅出============
2011-05-04 18:21
快速回复:如何编写一个用插空法对n个数排序的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017811 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved