| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1295 人关注过本帖
标题:求助~~快速排序算法编程序
只看楼主 加入收藏
口水猫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-3-26
收藏
 问题点数:0 回复次数:6 
求助~~快速排序算法编程序
课程设计老师要我用快速排序算法编个程序,用C语言描述的。偶不会做。哪位大哥能帮小弟编一段啊。不用太复杂的。看的过去就行。谢谢了。急用的~
搜索更多相关主题的帖子: 算法 编程序 课程 C语言 
2005-03-26 10:29
huntzun
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2005-2-20
收藏
得分:0 
    void arrange(Linklist &L){
          //使用起泡法对链表进行降序排列 这个算法不是很好 时间复杂度 为N的平方?
         Linklist t,p,q;
         int i,j;
            
         t=L;
  p=t->next;
  q=p->next;
         for(i=1;i<=l_len;i++)
     for(j=1;j<=l_len-i+1;j++){        //对在一个链表中输入两个相同的冥的情况没有处理
               if(p->index<q->index){
                  p=q;                                    //改变指针以交换两个接点的次序
    p->next=q->next;
    q->next=t->next;
    }
        t=t->next;                                //三个指针同时向后移动一个位置
        p=p->next;
        q=q->next;
        }
        }//arrange
   
2005-03-26 18:58
口水猫
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-3-26
收藏
得分:0 
谢谢大哥了。不过我们老师是让我们做:输入N个数。然后对N个数的排序。不是对链表的排序,能帮我再改改吗?谢谢了
2005-03-27 11:00
麦田的晨风
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-3-29
收藏
得分:0 

#include <iostream.h> void set(int a[],int n){ int b; for(int i=0;i<n;i++){ for(int j=i;j<10;j++){ int b=a[i]; if(b>a[j+1])b=a[j+1]; } a[i]=b; } cout<<"数组按小到大的顺序为"<<endl; for(int k=0;k<10;k++){ cout<<a[k]; } }

void main(){ int a[10]={3,5,2,67,432,5645,78,454,14,54}; int i=10; set(a,i);

}

2005-03-29 23:08
aniude
Rank: 2
等 级:新手上路
威 望:3
帖 子:231
专家分:0
注 册:2004-11-3
收藏
得分:0 
#include &lt;stdio.h&gt;
#define N 11
void kuaixu_paixu(int a[],int m,int n)
{
int i,j;
i=m;j=n;
if(m&lt;n)
{
a[0]=a[m];
do
{
while(i&lt;j &amp;&amp; a[j]&gt;=a[0]) j--;
if(i&lt;j)
{
 a[i]=a[j];
i++;
}
while(i&lt;j &amp;&amp; a[i] &lt;=a[0]) i++;
if(i&lt;j)
{
a[j]=a[i];
j--;
}
}while(i&lt;j)
a[i]=a[0];
kuaixu_paixu(a[],m,j-1);
kuaixu_paixu(a[],j+1,n);
}

}
void main()
{
int a[N];
scanf("%d",&amp;a++);
kuaixu_paixu(a,1,N-1);
}

2005-04-01 20:55
aniude
Rank: 2
等 级:新手上路
威 望:3
帖 子:231
专家分:0
注 册:2004-11-3
收藏
得分:0 

不好意思,好象错了,修正了v2.0版,测试通过了 :>>> #include <stdio.h> #define N 11 void kuaixu_paixu(int a[],int m,int n) { int i,j; i=m;j=n; if(m<n) { a[0]=a[m]; do { while(i<j && a[j]>=a[0]) j--; if(i<j) { a[i]=a[j]; i++; } while(i<j && a[i] <=a[0]) i++; if(i<j) { a[j]=a[i]; j--; } }while(i<j); a[i]=a[0]; kuaixu_paixu(a,m,j-1); kuaixu_paixu(a,j+1,n); }

} void main() { int i,a[N]; for(i=1;i<N;i++) scanf("%d",&a[i]); kuaixu_paixu(a,1,N-1); for(i=1;i<N;i++) printf("%5d",a[i]); getch(); }


2005-04-01 21:12
激情依旧
Rank: 1
等 级:新手上路
威 望:2
帖 子:524
专家分:0
注 册:2005-4-4
收藏
得分:0 
#include&lt;stdio.h&gt;
void QuickSort(int a[],int low,int high){
 int i=low,j=high;
 int temp=a[low];
 while(i&lt;j)
  {
   while(j&gt;i&amp;&amp;temp&lt;=a[j])
    j--;
      if(j&gt;i)
   {
    a[i]=a[j];
        i++;
   
   }
   while(j&gt;i&amp;&amp;a[i]&lt;temp)
    i++;
   if(j&gt;i)
   {
         a[j]=a[i];
   j--;
   }
  }
  a[i]=temp;
  if(low&lt;i) QuickSort(a,low,i-1);
  if(i&lt;high)QuickSort(a,j+1,high);
}
main()
{ int a[10]={5,4,6,1,2,9,3,8,7,10};
  int  high ,low,i;
  low=0;
  high=9;
  QuickSort(a,low,high);
  for( i=0;i&lt;10;i++)
   printf("%d\t",a[i]);
}我上机编译的。可以运行。结果正确

生是编程人!!!!死是编程鬼!!!!颠峰人生!!!焚尽编程!!! 爱已严重死机!情必须重新启动!情人已和服务器断开连接!网恋也需要重新拨号!-----激情依旧
2005-04-04 08:50
快速回复:求助~~快速排序算法编程序
数据加载中...
 
   



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

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