使用插入排序 c++
Using insertion sort c++
我写了一个插入排序的代码,似乎没有错误(它编译得很好),但它没有打印任何东西或要求用户输入。 我已经看了好几次,我无法弄清楚为什么代码无法正常运行。 谢谢!
#include <iostream>
using namespace std;
void getInput(int a[ ], int n);
void insertionSort(int a[ ], int n);
void print(int a[ ], int n);
int main()
{
int n=7;
int a[n];
getInput(a, n);
insertionSort(a, n);
print(a, n);
system("pause");
return 0;
}
void getInput(int a[ ], int n)
{
for(int i; i<n;i++)
{
cout<<"Number? ";
cin>>a[i];
}
}
void insertionSort(int a[ ], int n)
{
int temp, j;
for(int i = 0; i<n; i++)
{
temp = a[i];
j=i;
while(j>0 && a[j-1] > temp)
{
a[j]= a[j-1];
j=j-1;
}
}
}
void print(int a[ ], int n)
{
for(int i= 0; i<n; i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
在 print
和 getInput
你的变量 i 没有初始化为 0
您应该将 i 初始化为 0
for(int i = 0; i<n;i++)
{
cout<<"Number? ";
cin>>a[i];
}
打印方法相同。
此外,您应该使用 cont var 初始化数组大小。更多详情
const int n = 7;
void print(int a[ ], int n)
{
for(int i; i<n; i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
}
这是你的函数,你还没有初始化 i 的值。初始化 i =0;来得及:
for(int i = 0; i<n; i++)
相关文章:
- 这是插入排序的正确实现吗?
- 使用列表 STL 递归进行插入排序
- 列表 iter 不取消引用 使用列表进行插入排序
- 如何使插入排序更快?
- 插入排序的最小交换
- 双链表C++上的插入排序
- 如何在插入排序中使用 replace() 使语句变得不必要
- C++插入排序错误功能不起作用
- 如何在不通过插入排序更改原始矢量的情况下对 2D 矢量进行排序
- 插入排序打印错误的输出
- 从矢量末尾开始的插入排序
- 插入排序:我做错了什么?
- 插入排序的向量<unique_ptr<对时避免堆分配<>>>
- 获取有趣的输出以进行插入排序
- 插入排序算法在放入函数时的行为不同
- 插入排序的Valgrind Invalid读取尺寸8的尺寸
- 插入排序与插入/擦除?(所以我需要对一个向量进行排序,而不是手工做事,而是使用插入和擦除
- 堆排序和插入排序
- 计数Heapsort和插入排序中的复制和比较数
- 使用第二个数组C 插入排序算法