使用quicksort对以下数组进行排序,
[6, 11, 4, 9, 8, 2, 5, 8, 13, 7]
Run Code Online (Sandbox Code Playgroud)
应选择枢轴作为第一个和最后一个元素的算术平均值,即(a[0] + a[size - 1]) / 2 (rounded down).
显示所有重要步骤,例如分区和对算法的递归调用.
我理解如何使用quicksort对数组进行排序,但是我不知道如何计算数据.
被枢轴通过计算6 + 7 = 13则13 / 2 = 6.5(向下取整的6),因此枢轴2(即6元)?
我知道小于枢轴的元素出现在左侧,并且大于枢轴的元素出现在右侧,并且分区重复这个对子阵列进行排序的步骤.
任何帮助将不胜感激.
如果排序算法使用等于键保留任何两个元素的相对顺序,则它是稳定的.在哪些条件下快速稳定?
没有项目通过时,Quicksort是稳定的,除非它有一个较小的键.
还有什么其他条件可以稳定?
public class For {
public static void main(String[] args){
for(int i=2; i<=1024; i *= 2){
System.out.println("Count is: " + i);
}
}
public class While {
public static void main(String[] args){
int i = 1;
while (i < 1024) {
i *= 2;
System.out.println("Count is: " + i);
}
}
public class DoWhile {
public static void main(String[] args){
int i = 1;
if (i < 1024) {
do { i*=2;
System.out.println("Count is: " + i);
} while (i < …Run Code Online (Sandbox Code Playgroud) /**
* A method to compare Strings
* @param arg1
* @param arg2
* @return
*/
public boolean myQuickCompare(String arg1, String arg2) {
boolean a = arg1.length() == arg2.length();
if (a) {
for (int b = 0; b > arg1.length(); b++) {
if (arg1.charAt(b) != arg2.charAt(b)) {
a = false;
}
}
}
return a;
}
Run Code Online (Sandbox Code Playgroud)
我知道for循环是错误的方式,b永远不会大于字符串的长度.你会如何纠正这个问题?
你会给a和b什么明智的变量名?
我必须为WebPageData编写一个名为getWordsInString()的公共类方法.该方法采用一个名为text的参数,该参数应为String类型.getWordsInString()的目的是返回一个由文本引用的字符串中的distict词组成的集合.
首先使用您在Javadoc中找到的String类的方法,该类将根据字符串参数的值将任何字符串切割为多个部分.使用此方法将文本引用的字符串拆分为单词数组,并将此数组分配给名为wordArray的局部变量.该方法应声明一个能够引用一组字符串的局部变量,并为其分配一个合适类的空实例.接下来迭代wordArray并将其元素添加到新创建的集合中,最后返回应该包含文本引用的字符串中的不同单词的集合.
import java.util.*;
public class WebPageData {
private Set<String> wordSet;
private Set<String> url;
public Set<String> getUrl() {
return url;
}
public Set<String> getWordSet() {
return wordSet;
}
public static String getWordsInString(text) {
return test;
public String[] split(String regex) {
private String[] wordArray;
for (String eachText : numSet) {
hashSet.add(text);
)
}
Run Code Online (Sandbox Code Playgroud)
我正在努力解决这个问题,请帮忙吗?
Chris编写了一个名为toBinary的函数,它具有一个整数的输入参数,并返回一个表示二进制等价的字符串.例如,如果使用整数3调用函数,则返回的字符串应为"11".
用英语写一系列测试规范,可能使用"给定","何时"和"然后"序列及其等效的JUnit代码.
我的回答是:
测试应涵盖正常情况,极端情况和错误情况.给定一个例如3的整数,它应该在执行该方法后将其转换为11.
@Test
public void testToBinary() {
Binary aBinary = new Binary();
assertEquals(3, 11);
assertEquals(2, 10);
assertFail(10, 8575);
}
Run Code Online (Sandbox Code Playgroud)
它是否正确?