冒泡排序法在最坏的情况下的比较次数是n(n-1)/2,快速排序呢

keluoda2022-10-04 11:39:541条回答

冒泡排序法在最坏的情况下的比较次数是n(n-1)/2,快速排序呢
它不是据说是冒泡排序的优化版么…

已提交,审核后显示!提交回复

共1条回复
踏铁留痕 共回答了22个问题 | 采纳率72.7%
快速排序的时间复杂度
最坏为n*(n-1)/2
最好为n*logn
不同的结果和用于划分的key大小有关:
最坏情况发生在每次划分过程产生的两个区间分别包含n-1个元素和1个元素的时候;
最好情况是每次划分过程产生的区间大小都为n/2 .
数据结构里说的很清楚.百度百科里也有说明的.
1年前

相关推荐

有关冒泡排序法的题用冒泡排序法从小到大排列数据{13,5,9,10,7,3},至少需要几趟排序才能完成?
把酒临风1年前1
fany2010 共回答了17个问题 | 采纳率100%
5
“冒泡排序法”对任意10个整数按由大到小的顺序排列
1834112241年前1
ogreman 共回答了27个问题 | 采纳率92.6%
#define N 10 main() { int a[N]; int i,j,temp; for(i=0;i

1年前

8
给出以下四个数:6,-3,0,15,用冒泡排序法将它们按从大到小的顺序排列需要经过几趟(  )
给出以下四个数:6,-3,0,15,用冒泡排序法将它们按从大到小的顺序排列需要经过几趟(  )
A. 1
B. 2
C. 3
D. 4
qiwenhao1年前3
周思源 共回答了20个问题 | 采纳率85%
解题思路:依次比较相邻的两个数,将大数放在前面,小数放在后面.即在第一趟:首先比较第1个和第2个数,将大数放前,小数放后.然后比较第2个数和第3个数,将大数放前,小数放后,如此继续,直至比较最后两个数,将大数放前,小数放后,从而可得结论.

用冒泡法对一组数:6,-3,0,15进行排序时,经过第一趟排序后,得到一组数:6,0,15,-3.
经过第二趟排序后,得到一组数:6,15,0,-3.经过第三趟排序后,得到一组数:15,6,0,-3.
故选C.

点评:
本题考点: 排序问题与算法的多样性.

考点点评: 本小题主要考查排序问题与算法的多样性、冒泡法的应用等基础知识,属于基础题.

有如下数列30,15,5,7,20,46,33 写出用冒泡排序法 急.
有如下数列30,15,5,7,20,46,33 写出用冒泡排序法 急.
有如下数列:
30,15,5,7,20,46,33
写出用冒泡排序法对该数列进行排序的过程及关键代码,并给出该算法的时间复杂度
重新开始fang1年前1
momosealove 共回答了11个问题 | 采纳率81.8%
public class MySort {
public static void main(String[] args) {
MySort sort = new MySort();
int[] arr = new int[]{30,15,5,7,20,46,33};
sort.sort(arr);
for(int i : arr){
System.out.print(i+",");
}
}
public void sort(int[] targetArr){
int temp = 0;
for(int i = 0;i
冒泡排序法,比较次数为n(n-1)/2,是怎么的出来的?
sheena_1年前1
fxx888 共回答了19个问题 | 采纳率89.5%
n个数,第一轮,比较n-1次,得到最大(或最小)数
余下的n-1个数,比较n-2次,得到排第二位的数
以此此类推,最后比较1次,确定最后两个数的大小
故共比次数:1+2+...+n-1=(1+n-1)(n-1)/2=n(n-1)/2
如何生成随机数列并用冒泡排序法排序
漪滢1年前1
songgadonnng 共回答了19个问题 | 采纳率84.2%
#include
void main() //主函数入口
{int i,j;
int a[N],t; //定义N维(N=5,也就是五维啦^^)整形数组和整形变量temp
printf("Input 5 numbersn");
for(i=0;i
写出使用冒泡排序法对下列数据进行从小到大排序的中间过程和最后结果 24,19,32,43,38,6,13,22
chet1年前1
dzldzl 共回答了22个问题 | 采纳率95.5%
#include
#include
int main()
{
int a[8] = { 24,19,32,43,38,6,13,22 };
int temp = 0;
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
if(a[i]{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(int i=0;i<8;i++)
{
printf("%d ,",a[i]);
}
}
两道简单的数据机构练习题!1、若对序列(56,23,67,4,88,12,55)采用直接插入排序法和冒泡排序法进行排序,
两道简单的数据机构练习题!
1、若对序列(56,23,67,4,88,12,55)采用直接插入排序法和冒泡排序法进行排序,请写出每一趟的结果.
2、请写出该树的先根遍历序列、中根序列、后根序列、层次遍历序列.
图片可能有点模糊,从上到下,从左到右依次是ABCDEFG
wanghaouu461年前1
yiayiaya 共回答了16个问题 | 采纳率87.5%
1.
直接插入:
56,23,67,4,88,12,55
23,56,67,4,88,12,55
23,56,67,4,88,12,55
4,23,56,67,88,12,55
4,23,56,67,88,12,55
4,12,23,56,67,88,55
4,12,23,55,56,67,88
冒泡:
23,56,4,67,12,55,88
23,4,56,12,55,67,88
4,23,12,55,56,67,88
4,12,23,55,56,67,88
4,12,23,55,56,67,88
4,12,23,55,56,67,88
4,12,23,55,56,67,88
2
先根
ABDCEFG
中根
BDAECGF
后根
DBEGFCA
层次
ABCDEFG
写得有点急,楼主参考.
冒泡排序法排列7,1,3,12,8,4,9,10
冒泡排序法排列7,1,3,12,8,4,9,10
请写出每一趟的结果,
泰瑞宝1年前1
curry_13 共回答了20个问题 | 采纳率95%
7 1 3 12 8 4 9 10
1 3 7 12 8 4 9 10
1 3 7 8 12 4 9 10
1 3 4 7 8 12 9 10
1 3 4 7 8 9 12 10
1 3 4 7 8 9 10 12
已知一组元素的排序码为:(17,3,30,25,14,17,20,9),则.1.用冒泡排序法写出每趟的排序算法
mingheli1年前1
yoYo绣 共回答了21个问题 | 采纳率95.2%
//冒泡排序的实现方法
public static void scort(int [] values){
int temp;//中间变量
for(int i=0;i
计算机常用算法有哪些?说具体点,可不可以再举个具体的例子。穷举法,递归法,冒泡排序法是什么啊?百鸡问题用什么算法解决啊
计算机常用算法有哪些?
说具体点,可不可以再举个具体的例子。
穷举法,递归法,冒泡排序法是什么啊?
百鸡问题用什么算法解决啊 ? 简单地说下就好。
这是考试卷上的题目。
_ey_t5b0afe16_b31年前2
maggie968119 共回答了14个问题 | 采纳率71.4%
顺序算法(直接赋值)
循环算法(FOR语句等)
选择算法(IF语句等)
写起来是很多的,自己买本书.
用冒泡排序法将下列各数按从小到大的顺序排成一列8,6,3,18,21,67,54.并写出各趟的
用冒泡排序法将下列各数按从小到大的顺序排成一列8,6,3,18,21,67,54.并写出各趟的
用冒泡排序法将下列各数按从小到大的顺序排成一列8,6,3,18,21,67,54.
并写出各趟的最后结果及各趟完成交换次数.
老珰1年前1
luyuan888888 共回答了21个问题 | 采纳率95.2%
开始交换后,从最后一个数字54往前换
8,6,3,18,21,54,67 54交换一次
换完后,再从最后一个往前换,67不动,54不动,直到3
3,8,6,18,21,54,67 3交换两次
再从最后一个往前换,到6
3,6,8,18,21,54,67,6交换一次
c#中应用一个冒泡排序法,总是提示Index was out of range.Must be non-negative
c#中应用一个冒泡排序法,总是提示Index was out of range.Must be non-negative and less than the size
程序:
IList img_S = new List();
IList Tem = new List();
for (int i = 0; i < c; i++)
{
for (int j = 0; j < c - i-1; j++)
{
if (img_S[j].Similarity > img_S[j + 1].Similarity)
{
Tem[0] = img_S[j];
img_S[j] = img_S[j + 1];
img_S[j + 1] = Tem[0];
}
}
}
c是 img_S的总个数,Tem是我建立的中间数列.出现的错误提示指示在第一个 Tem[0] 处
侃侃19841年前1
yuhuadong1985326 共回答了14个问题 | 采纳率92.9%
新建一个链表之后,它里面都是空的啊,你有调用它的成员方法比如add之类的添加元素吗?
可能Tem里一个元素都没有,Tem[0]当然会超限啊