
快速排序法如何排序
请大家看看如何用快速排序法进行排序,不是冒泡排序法,是快速排序法。12,31,54,65,32,34,45,68,75,85,43,77,98用这个举例子,详细说明快速排...
请大家看看如何用快速排序法进行排序,不是冒泡排序法,是快速排序法。12,31,54,65,32,34,45,68,75,85,43,77,98用这个举例子,详细说明快速排序法如何排。
展开
3个回答
推荐于2017-12-15
展开全部
第一遍 【12】 31 54 65 32 34 45 68 75 85 43 77 98第二遍 12 【31】 54 65 32 34 45 68 75 85 43 77 98第三遍 12 31 32 34 45 43 【54】 98 77 85 75 68 65第四遍 12 31 【32】 34 45 43 54 98 77 85 75 68 65第五遍 12 31 32 【34】 45 43 54 98 77 85 75 68 65第六遍 12 31 32 34 43 【45】 54 98 77 85 75 68 65第七遍 12 31 32 34 【43】 45 54 98 77 85 75 68 65 (左边区间所有递归完成,开始右边区间逐一递归)第八遍 12 31 32 34 43 45 54 65 68 75 85 77 【98】 第九遍 12 31 32 34 43 45 54 【65】 68 75 85 77 98第十遍 12 31 32 34 43 45 54 65 【68】 75 85 77 98第十一遍 12 31 32 34 43 45 54 65 68 【75】 85 77 98第十二遍 12 31 32 34 43 45 54 65 68 75 77 【85】 98第十三遍12 31 32 34 43 45 54 65 68 75 【77】 85 98 快速算法每次取当前无序区的第一个记录为基准,首先取12作为tep量,起始位置i=0,终止位置j=12.最外层循环,只要i 不等于 j 就扫描,内层循环,首先从右向左扫描,找到第一个小于tep的值,再交换这个值和tep,这样tep的左边都是比他小的数,再从左向右扫描,找到第1个大于tep的值,与tep交换,这样右边都是比tep大的数。接下来,递归此程序,用同样方法快速排序那个tep值的左区间和右区间。可以看做是,先得出无序区第一个在此序列里应有的位置,再依此位置为轴,排序左右区间,又分别得出左右无序区间的第一个值在序列里的应有位置。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-25
展开全部
用C#写的一个排序,不知道是不是你想要的:
int[] array = new int[] { 12, 31, 54, 65, 32, 34, 45, 68, 75, 85, 43, 77, 98 };
ArrayList arr = new ArrayList();
for (int i = 0; i < array.Length; i++)
{
arr.Add(array[i]);
}
arr.Sort();
for (int i = 0; i < arr.Count; i++)
{
Console.WriteLine(arr[i]);
}
int[] array = new int[] { 12, 31, 54, 65, 32, 34, 45, 68, 75, 85, 43, 77, 98 };
ArrayList arr = new ArrayList();
for (int i = 0; i < array.Length; i++)
{
arr.Add(array[i]);
}
arr.Sort();
for (int i = 0; i < arr.Count; i++)
{
Console.WriteLine(arr[i]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-25
展开全部
c#的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询