请教在链表中快速排序的问题

xwy88169 2009-02-11 03:48:03
void fast(Students*head,int a)
{
float *f=(float*)malloc(sizeof(float)*a-1);
if(f!=NULL)
{
for(int o=0;o<a;o++)
{
f[o]=head->score;
if(head!=NULL)
{
head=head->next;
}
cout<<"f["<<o<<"]"<<f[o]<<endl;//这里数组中多出了1个。值 而且是1个。随机数
}
}
QuickSort(f,0,a-1,a);
cout<<"按回车键返回。";
return;
}
//定义QuickSort函数
void QuickSort(float list[],int left,int right,int index)
{
int i,j;
float pivot;
float temp;
i=left;
j=right;
pivot=list[left];
if(i<j)
{
do
{
do
{
i++;
}
while(list[i]<=pivot&&i<=right);
do
{
j--;
}
while(list[j]>=pivot&&j>=left);
if(i<j)
{
temp=list[i];
list[i]=list[j];
list[j]=temp;
}
}
while(i<j);
temp=list[left];
list[left]=list[j];
list[j]=temp;
QuickSort(list,left,j-1,index);
QuickSort(list,j+1,right,index);
}
return;
}
下面是在main函数中调用的代码
else if(str[0]=='7')
{
if(head==NULL)
{
cout<<"没有任何学生信息,请先输入学生信息,按回车键返回"<<endl;
cin.get();
cin.get();
system("cls");
goto begin;
}
int a=GetNum(head);//这个是获得个数
fast(head,a);
cin.get();
cin.get();
system("cls");
goto begin;
}
您好,首先谢谢你在百忙之中有空能看我的问题,我第一次向专家提问,很多不知道,有什么没做好的希望见谅,我这段代码在调用fast函数后。直接结束了程序,应该不会直接结束程序的,想了1天了,,也没能弄懂,希望您能帮我解答,如有打扰,十分抱歉,
...全文
144 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
我看你有戏 2009-02-11
  • 打赏
  • 举报
回复
最好写个链表模板类

排序在类里面写

可以根据某字段进行排序
xwy88169 2009-02-11
  • 打赏
  • 举报
回复
我在这先谢谢各位了
我在学C++编程,做了个学生信息管理系统给公司 ,公司要我加个功能,可是这个代码怎么都不对,我学C++才10天左右很多都不懂,希望各位能帮我解答 谢谢
waizqfor 2009-02-11
  • 打赏
  • 举报
回复
给你个快速排序的代码 LZ看看吧

#include <iostream.h>
int data[9] = {54,38,96,23,15,72,60,45,83};
void quick_sort(int data[], int low, int high)
{
int i, j, pivot;
if (low < high)
{
pivot=data[low];
i=low;
j=high;

while(i<j)
{
while (i<j && data[j]>=pivot)
j--;
if(i<j)
data[i++]=data[j]; //将比枢轴记录小的记录移到低端

while (i<j && data[i]<=pivot)
i++;
if(i<j)
data[j--]=data[i]; //将比枢轴记录大的记录移到高端
}

data[i]=pivot; //枢轴记录移到最终位置

quick_sort(data,low,i-1);
quick_sort(data,i+1,high);
}
}

void main()
{
quick_sort(data, 0, 8);
}
baihacker 2009-02-11
  • 打赏
  • 举报
回复
快速排序似乎要求元素是可以随机访问的
也就是给一个i就能定位第i个元素.

你可以转为数组(存储值,或者这些结点的指针),然后再转回去.
taodm 2009-02-11
  • 打赏
  • 举报
回复
你是在学数据结构课程还是在学C++编程?

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧