这是我的插入排序代码。此代码有效,但这是编写插入排序的方式吗?我看了一些教程,但他们以不同的方式来做。
int thirdArray[] = { 0, 22, 1, 10, 8, 5,39 };
for (int i = 0; i < thirdArray.length - 1; i++) {
for (int j = i + 1; j > 0; j--) {
if (thirdArray[j] < thirdArray[j - 1]) {
int index = thirdArray[j];
thirdArray[j] = thirdArray[j - 1];
thirdArray[j - 1] = index;
}
}
}
for (int number : thirdArray) {
System.out.print(number + "\t");
}
答案 0 :(得分:0)
如今,使用Java 7进行分类非常简单。
Arrays.sort(thirdArray);
这将对排序后的数组的元素进行排序。
答案 1 :(得分:0)
在您的代码中,您为交换操作占用了额外的空间。但是,这是一种有效的方法,但是您可以通过以下方式进行优化
while True:
print ("Options: ")
print ("Enter '+' to add two numbers")
print ("Enter '-' to subtract two numbers")
print ("Enter '*' to multiply two numbers")
print ("Enter '/' to divide two numbers")
print ("Enter 'quit' to end the program")
user_input = input(": ")
def calculation (argnum1, argnum2):
argnum1 = float (input("Enter your fist number: "))
argnum2 = float (input("Enter your second number: "))
number = argnum1
number = argnum2
result = argnum1 + argnum2
print (result)
print("-"*25)
return number
return result
if user_input == "quit":
break
elif user_input == "+":
calculation (argnum1, argnum2)
I expect the output of argnum1 + argnum 2 result.
在上面的代码中,您从第一个索引开始将其与先前的索引进行比较,如果较小,则覆盖其值(您已经将当前值保存在键中),最后将其放置在正确的位置。我们可以保证在排序之后,对左侧的所有元素都进行了排序。插入排序的最坏情况性能:О(n ^ 2)最佳情况下性能:O(n)。通过交换,我们增加了可以避免的复杂性。