- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码。该方法应该有效,但我无法将 vector 传递给函数。我四处搜索,发现 vector 可以作为“引用”或“值”传递,我都试过了,但它们似乎没有用。我是否错误地调用了方法或以错误的方式传递了 vector ?无论哪种方式,我该怎么做才能解决这个问题?谢谢! :)
//insertion sort method
#include <iostream>
#include <vector>
using namespace std;
void insertionSort(int arr[], int n){
for(int i = 0; i < n; i++){
int temp = arr[i]; // element adjacent to left sorted array
int j = i - 1;
while(temp > arr[j] && j != 0){
arr[j] = arr[j - 1];
j--;
}
arr[j] = temp;
}
}
int main(){
int n, temp;
cin >> n;
vector <int> arr;
for(int i = 0; i < n; i++){
cin >> temp;
arr.push_back(temp);
}
insertionSort(arr, n);
for(int i = 0; i < n; i++)
cout << arr[i] << " ";
return 0;
}
最佳答案
insertionSort(int arr[], int n) 方法的第一个参数错误。您还错误地处理了 arr。在第一次迭代中,int j = 0 - 1 = -1;这是意外的/超出范围的。
请试试这个:
void insertionSort(vector <int> &arr, int n){
int i, j, temp;
for (i = 1; i < n; i++)
{
temp = arr[i];
j = i - 1;
while ((j >= 0) && (temp<arr[j]))
{
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = temp;
}
}
谢谢!!!
关于c++ - 这里怎么调用InsertionSort方法呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716136/
public class First{ public static void main(String[] args){ int[] arr = new int[]{4, 2,
这里制定的算法的复杂度为 O(n^2)(插入排序)。该算法虽然得到一个 NullPointerException,因为 String 数组中有 null 元素。如何让我的算法对包含空元素的数组进行排序
我有一个合并排序需要在特定数字切换到插入排序,这是我的阈值。但我的阈值只能是 1、2 或 3,因为在任何其他情况下,我的合并排序都会变得非常慢。我似乎无法让代码协同工作。 这是我的代码: public
*在这个程序中,我正在读取两个文件,然后删除所有标点符号,然后应用“插入算法”(我在这个程序中创建了一个方法)。每次我调用这个程序时,包括“InsertionSort”一个空的输出文件正在生成并且排除
对于两种不同的排序,我有两个实现,InsertionSort 和 ShellSort。 它们如下: 插入排序: for (int pos = 0; pos 0; secondMarker--) {
我是 Swift 的新手,我想知道我应该如何修改包含在我的 Int[] 中的 Int?我做的就像我在 Java 中做的那样,但显然,它不起作用:我得到一个 Cannot assign to immut
美好的一天 SO 社区, 我是一名 CS 学生,目前正在进行结合 MergeSort 和 InsertionSort 的实验。据了解,对于某个阈值 S,InsertionSort 将比 MergeSo
我决定开始学习一种编程语言来重写我的程序。第一个是大学二年级的一个简单程序。但是……看看测试!为什么简单的插入排序这么慢? 在 C 上测试: ARRAY SIZE: 100000 = 0 && a[j
最近,我着迷于 ShellSort 算法思想,简单地在小子列表中使用 InsertionSort,然后最后对整个列表使用 InsertionSort。 所以,我想为什么不将 MergeSort 与 I
我是一名优秀的程序员,十分优秀!