我在计算这个算法的运行时间?
Cost No Of Times
for(j=1;j<=n-1;j++){ c1 n(loop will run for n-1 times +1 for failed cond
for(i=0;i<=n-2;i++){ c2 n*(n-1) (n-1 from outer loop and n for inner
if(a[i]>a[i+1]){ c3
我想知道为什么我的quickSort这么慢。对下面的数组进行排序需要10-20秒。Bubblesort (如下所示)会自动执行此操作。
public static void quickSort(int[] tab, int lowIndex, int highIndex) {
if (tab == null || tab.length == 0) {
return;
}
int i = lowIndex;
int j = highIndex;
int pivot = tab[lowIndex + (highIndex - lowIndex) / 2];
while (i <
我不是排序专家,但据我所知,以下程序应该可以工作。不幸的是,它并不总是有效的。你能帮我找出它出了什么问题吗?谢谢。代码如下:
/*
* Question4.c
*
* Created on: 12 Feb 2015
* Author: Daniel
*/
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define SIZE 10
int main(void)
{
int array[SIZE], i, gap,temp, k, m;
srand(tim
我正在尝试找到一种方法,根据输入的姓氏对这个单链表进行排序。我想我可能会尝试冒泡排序,但我在通过第二个元素遍历列表并进行比较时遇到了问题。该列表现在只包含3个名称作为控制台条目,但当我完成此操作时,它应该有10个名称。任何帮助都将不胜感激。
package LinkedList;
import java.util.*;
class SLinkedList
{
public String data1;
public String data2;
public SLinkedList next;
public SLinkedList()
{
dat
我正在读“算法导论”和关于插入排序的内容。
我尝试在没有阅读他们的解决方案的情况下自己实现它。
这是我的解决方案,这是插入排序吗?
#include <iostream>
using namespace std;
int main()
{
// initialize an unsorted array
int a[] = {5,6,4,7,3,8,2,9,0,1};
// define variables
int i,j,tmp;
for (int j=1; j<10; ++j)
{
for (int i
我正在读的C++书描述了一种算法,说它是Bubblesort,但我找不到一个像它一样的bubblesort变体。我知道区别很小,但是它和普通的冒泡排序一样有效吗?
BubbleSort(int A[], int length)
for (j=0; j < length-1; j++)
for (i=j+1; i < length; i++)
if (A[i] < A[j])
Swap()
基本上,它不是比较两个相邻的值,而是将第一个A与每个条目进行比较,在下一遍中,它将A1与其余条目进行比较,然后是A2,依此类推。
它真的只是一个常规的冒泡服务吗,它的
下面我有气泡排序的代码。我想知道怎样才能运行得更高效,循环次数更少。 package bubbleSort;
public class BubbleSort {
public static void main(String[] args) {
// initialize array to sort
int size = 10;
int[] numbers = new int[size];
// fill array with random numbers
randomArray(
我用C和Haskell编写了2种气泡排序算法的实现。Haskell执行:
module Main where
main = do
contents <- readFile "./data"
print "Data loaded. Sorting.."
let newcontents = bubblesort contents
writeFile "./data_new_ghc" newcontents
print "Sorting done"
bubblesort list = sor
bubblesort :: (Ord a) => [a] -> [a]
bubblesort (x:y:xs)
| x > y = y : bubblesort (x:xs)
| otherwise = x : bubblesort (y:xs)
bubblesort (x) = (x)
1.我不理解代码的最后一行;我试图注释掉它,但编译器说“Non-exhaustive in function bubblesort",当我试图将它移到代码的第一行时,编译器说”模式匹配是多余的“。它使用圆括号的方式把我搞糊涂了。
2.我尝试将类型声明更改为->
我有下面的代码,它使用冒泡排序来倒排列表,并且时间性能最差。
for i in xrange(len(l)):
for j in xrange(len(l)):
if l[i]>l[j]:
l[i], l[j] = l[j], l[i]
在某些情况下(当len(l) = 100000)代码花费超过2小时来完成执行,我认为这是如此奇怪,请纠正我的代码或给出一些建议。欢迎使用numpy和numarray解决方案。
我有5个学生的名字和他们在3门课程上的成绩,我计算了他们在这3门课程上的平均值。但然后我需要用他们的数据(名字,3门课程的成绩和平均值)从平均值最高的课程到最低的课程排序。有人能告诉我我的代码出了什么问题吗?这是我的代码。
# include <iostream>
# include <string>
# include <iomanip>
using namespace std;
void read(string names[],double grades[][4],int n);
void average(double grades[][4], int
我在寻找以下算法的运行时间时遇到了很多麻烦。我将非常感谢,如果有人可以帮助我,明确地解决它每行与相应的成本和执行的次数。我最大的问题是计算while循环的执行次数。
Algo: (A,n)
tmp = 0;
do
ready = 0;
for i = n-1 to 1 do
if A[i-1]>A[i] then
temp=A[i-1];
A[i-1] = A[i];
A[i] = tmp;
ready = 1;
for i = 1 to n-1 do
if A[i-1]>A[i] then
在实践中,我想先按频率排序一个ASCII字符串,然后在java中按字母顺序排序,所以'banana‘应该变成'bnnaaa',’语法‘应该变成'gaammrr’。这是我到目前为止所掌握的。
public static orderByFrequencyAndThenAlphabet(String str) {
// 128 ASCII characters possible.
int[] charCount = new int[128]
// Get the counts.
str = str.toCharArray();
for (char
我和一个朋友争论了下面两个算法的真实泡沫类型,关于哪个更好,没有提到哪个是我的,我只想听听你对这两个算法的回答(用c++写的)
1-哪一个是真正的冒泡排序?
2-哪个更好?
以下是两种算法:
// Number one :
void BubbleSort(int Arr[], int size)
{ for (int i=0;i<size-1;i++)
for (int j=i+1;j<size;j++)
if (Arr[i]>Arr[j])
{ int temp = Arr[i];
我是Java的初学者,我一直在尝试使用compareTo方法来对三个城市进行排序。我的三个测试词是Legion,LSD和Chunkey。为了识别错误,我让每个输出概率都有一个从1到6的数字。对于输出1,它是(Chunkey,LSD,Legion),2= (legion,LSD,Chunkey,4= (Chunkey,Legion,LSD)。当我相信我遵循的是正确的逻辑时,输出往往是没有意义的,当比较两个字符串时,值是负值,那么第一个值首先出现,然后是第二个值。然而,即使这样做,它的顺序也不正确。请帮帮我!谢谢!
import java.util.Scanner;
public class Or
这是到目前为止我的程序:
#include <iostream>
#include <string>
using namespace std;
template <class type>
void display( type list[], int size );
template <class type>
void bubblesort( type list[], int size);
在我的main函数中,我有列表。
int main()
{
con
我有一个名为countries.txt的列表,它列出了所有国家的名称,面积(在km2中),人口(例如,["Afghanistan", 647500.0, 25500100])。
def readCountries(filename):
result=[]
lines=open(filename)
for line in lines:
result.append(line.strip('\n').split(',\t'))
for sublist in result:
sublis
更新:好的,我看到它是一个冒泡排序,但是它的效率是不是因为在特定的运行中没有交换时不会停止?它会一直运行到first为空。
嗨,我有一个排序算法如下所示。我的问题是,这是哪种排序算法?我认为它是冒泡排序,但它不做多次运行。有什么想法吗?谢谢!
//sorting in descending order
struct node
{
int value;
node* NEXT;
}
//Assume HEAD pointer denotes the first element in the //linked list
// only change the values…don’t
首先是我的代码:
import pygame, sys, random
from pygame.locals import *
# Create the constants (go ahead and experiment with different values)
BOARDWIDTH = 4 # number of columns in the board
BOARDHEIGHT = 4 # number of rows in the board
TILESIZE = 80
WINDOWWIDTH = 640
WINDOWHEIGHT = 480
FPS = 30
BLANK = N
我创建了一些使用冒泡排序对数组进行排序的代码,但有人告诉我有一种冒泡排序的变体执行得更好,所以我想知道是否有更好的冒泡排序版本。例如,我使用的是常规版本,如果它如下所示:
package termproject3;
import java.util.Random;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
public class TermProject3 {
/**
* @param args the command line arguments
*/
public static void ma
我试图根据对象属性之一对对象向量进行排序。每个对象都有一个与其关联的整数值。我试图使用一个bubblesort按降序对数组进行排序,但它似乎没有做任何事情。以下是我尝试过的:
void Database::sort (vector<Play*> &vec) {
for (int i = 0; i < (vec.size() - 1); i++) {
if (vec.at(i)->getRelevance() < vec.at((i + 1))->getRelevance()) {
Play *tempObj = new Pla