问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

请哥哥姐姐为我设计个简单的快速排序算法,C语言的,谢谢啦!

发布网友 发布时间:2022-04-29 20:37

我来回答

4个回答

热心网友 时间:2022-05-22 02:50

void QuickSort(int *a,int left,int right)
{
if ( left < right )
{
int i = left;
int j = right + 1;//why add 1?
int pivot = a[left];//youbiao
do
{
do
{
i++;//the second
} while ( a[i] < pivot );
do
{
j--;
} while ( a[j] > pivot );
if ( i < j )
{
swap(a[i],a[j]);
}
} while ( i < j );
if (left != j)
{
swap(a[left],a[j]);
}
//digui
QuickSort(a,left,j-1);
QuickSort(a,j+1,right);
}
}
//测试排序代码
void print(int *a,int n)
{
int i;
for ( i = 0 ; i < n ; i++ )
{
printf("%d ",a[i]);
}
printf("\n");
}

int main()
{
int a[20];
myrand(a,20);
QuickSort(a,0,19);
print(a,20);
return 0 ;
}

呵呵 有问题再联系。。。。

热心网友 时间:2022-05-22 04:08

//其实C++里有自带的算法库的,里面有快排算法

//下面这个是我自己写的

#include "stdio.h"
#include "conio.h"
#define max 100

void swap(int *a,int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
}

int split(int a[],int low,int high)
{
int k,i=low;
int x=a[low];
for(k=low+1;k<=high;k++)
if(a[k]<=x){
i+=1;
if(i!=k)
swap(&a[i],&a[k]);
}
swap(&a[low],&a[i]);
return i;
}

void quick_sort(int a[],int low,int high)
{
int k;
if(low<high)
{
k=split(a,low,high);
quick_sort(a,low,k-1);
quick_sort(a,k+1,high);
}
}

main()
{
FILE *in,*out;
int a[max],n,i;
in=fopen("infile","r");
out=fopen("outfile","w");
while(!feof(in))
{
fscanf(in,"%d",&n);
for(i=0;i<n;i++)
fscanf(in,"%d",&a[i]);
quick_sort(a,0,n-1);
for(i=0;i<n;i++)
fprintf(out,"%3d",a[i]);
fprintf(out,"\n");
}
fclose(in);
fclose(out);
}

热心网友 时间:2022-05-22 05:43

int partitions(int a[],int low,int high) { int pivotkey=a[low]; //a[0]=a[low]; while(low<high) { while(low<high && a[high]>=pivotkey) --high; a[low]=a[high]; while(low<high && a[low]<=pivotkey) ++low; a[high]=a[low]; } //a[low]=a[0]; a[low]=pivotkey; return low; } void qsort(int a[],int low,int high) { int pivottag; if(low<high) { //递归调用 pivottag=partitions(a,low,high); qsort(a,low,pivottag-1); qsort(a,pivottag+1,high); } } void quicksort(int a[],int n) { qsort(a,0,n); }

热心网友 时间:2022-05-22 07:34

冒泡、沉底法行不
请哥哥姐姐为我设计个简单的快速排序算法,C语言的,谢谢啦!

void QuickSort(int *a,int left,int right){ if ( left &lt; right ){ int i = left;int j = right + 1;//why add 1?int pivot = a[left];//youbiao do { do { i++;//the second } while ( a[i] &lt; pivot );do { j--;} while ( a[j] &gt; pivot );if ( i &lt; j ...

C语言快速排序算法问题

快速排序法”使用的是递归原理,下面我结合一个例子来说明“快速排序法”的原理。首先给出一个数组{53,12,98,63,18,72,80,46, 32,21},先找到第一个数--53,把它作为中间值,也就是说,要把53放在一个位置,使得它左边的值比它小,右边的值比它大。{21,12,32, 46,18,53,8...

用C语言写个完整程序,包括希尔排序和快速排序

(c): a b c d e f g h i k l j m p o n q s u z x y v t r w(i): a b c d e f g h i k l j m p o n q s u z x y v t r w(k): a b c d e f g h i j k l m p o n q s u z x y v t r w(p): a b c d e f g h i j k l m...

C语言的快速排序的算法是什么啊?

一趟快速排序的算法是: 1)设置两个变量I、J,排序开始的时候:I=0,J=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即 key=A[0]; 3)从J开始向前搜索,即由后开始向前搜索(J=J-1),找到第一个小于key的值A[J],并与key交换; 4)从I开始向后搜索,即由前开始向后搜索(I...

快速排序算法c语言

O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序 线性阶 (O(n)) 排序 基数排序,此外还有桶、箱排序。关于稳定性 稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。名词解释:n:数据规模 k:"桶"的个数 ...

快速排序算法(C语言或者PYTHON) 请教一下,已经有while(i&lt;j)的前提...

while(i&lt;j){ while((a[j]&gt;=temp)&amp;&amp;(i&lt;j)){ j--;} ……} 这样写应该就明白了吧,while是循环语句。

快速排序,看了解释还是不会,求通俗点的

下面排序C语言的排序快速代码,参考一下 void sort(int *a, int left, int right){ if(left &gt;= right)/*如果左边索引大于或者等于右边的索引就代表已经整理完成一个组了*/ { return ; } int i = left; int j = right; int key = a[left]; while(i &lt; j) ...

C语言十大经典排序算法(动态演示+代码,值得收藏)

1. 冒泡排序这一经典算法以交换相邻元素的方式,逐个比较并调整,就像泡泡在水面上浮起。平均/最差时间复杂度为O(n^2),空间复杂度为O(1),但稳定性使其在某些场景下依然有其优势。2. 选择排序选择排序犹如寻宝游戏,它在未排序部分中挑选出最小(或最大)的元素,将其放置在已排序序列的末尾。

C语言一个快速排序的问题 我应该是传参的问题 但我不知道该如何改 请大...

下面是《算法导论》里快速排序的实现,希望对你有用:include&lt;stdio.h&gt;void swap(int *a,int *b){ int t =*a; *a = *b; *b = t; return;}int partition(int a[],int start,int end){ int x = a[end]; int i = start -1; int j; for(j= start...

快速排序算法在平均情况下的时间复杂度为 求详解

时间复杂度为O(nlogn) n为元素个数 1. 快速排序的三个步骤:1.1. 找到序列中用于划分序列的元素 1.2. 用元素划分序列 1.3. 对划分后的两个序列重复1,2两个步骤指导序列无法再划分 所以对于n个元素其排序时间为 T(n) = 2*T(n/2) + n (表示将长度为n的序列划分为两个子序列,每个子...

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
北海市火车站公安临时办证点几点上班 浓缩的都是精华之大海——拉利玛 浓缩的都是精华作文 梦到捡到钱是什么预兆周公解梦(梦见自己捡钱了周公解梦) 孔明锁怎么拆更加省力? ...的,唱歌特别显累。现在练气息发声,感觉遇到了新的问题。是不是_百度... 交了首付没签购房合同是不是可以退房 财付通的支付密码是什么 苹果iPad怎么修改键盘大小 海尔空调f1怎么解决? 英文漂亮手写字体都有哪些?求大神回复,常用的那种 C语言快速排序 漂亮的英文字体 C语言有算法怎么做快速排序呢。 用C语言编写一个快速排序算法 输入10个数 [英文字体]有哪些很漂亮的?求详细! 要好看的英文字体,发图,满意必采纳 c语言实现快速排序 C语言的快速排序的算法是什么啊? 关于快速排序C语言算法 快速排序算法c语言 C语言,快速排序算法 C语言快速排序的代码 C语言快速排序代码 上海黄金交易所,在合肥有分公司么? 如何快速将CAD标注尺寸对齐?- 问一问 CAD中如何快速标注尺寸? 缥的同音字,并组词。谢谢 窦娥冤中所有通假字、生字及注音都有什么? 飘的同音字是什么 c语言快速排序 谁能给我讲讲下面的代码啥意思 美图秀秀好看的英文字体,最好附图。 用C语言编写函数,要实现快速排序算法或者冒泡法 C语言 快速排序 求一款英文字体。!!!有图片。对了分全给你了 最好给上效果图。 怎样使用C语言实现如下算法: 输入任意10个数,用快速排序算法,按降序排序后输出 如何评价电影《超强台风》? 电影《超强台风》中的外国人为什么一直和台风战斗? 电影《超强台风》中有哪些不合理的设定? 请问eclipse搭建SSM(spring+springmvc+mybatis)一定要用maven来搭建吗 对电影《超强台风》的评价 海螺肉里什么东西不能吃 超强台风电影 电影&lt;超级台风&gt;是怎样拍摄的? 电影(超强台风)读后感 电影《超强台风》里讲的是真的吗?具体是哪一年登录的 一般的空调风机电容多大 超强台风的主要内容 求超强台风高清百度云资源 京瓷181kx打印机的双面打印怎么设置?属性-基本里面的双面打印是灰色的
  • 焦点

最新推荐

猜你喜欢

热门推荐