插入排序不起作用
Insert Sort not working
我正在学习排序算法。我用谷歌搜索了插入排序代码,当我自己尝试时,它不起作用。有人可以在我的代码中找到错误吗?
#include<iostream>
using namespace std;
int main()
{
int i,size, a[40], key;
cout << "Enter size: ";
cin >> size;
for(int o=0; o<size; o++)
{
cin >> a[o];
}
//insertion sort
for(int j = 1; j <= size-1; j++)
{
key = a[j];
i = j-1;
while((key < a[i]) && (i >= 0));
{
a[i + 1] = a[i];
i = i - 1;
}
a[i + 1] = key;
}
cout << "nSorted list is as followsn";
for(int o = 0; o < size; o++)
{
cout << endl << a[o];
}
}
while((key<a[i])&&(i>=0));
你在这里有一个无限while
循环。末尾的分号表示 while 循环体为空。因此,i
永远不会递减,循环永远运行。
此外,在尝试访问索引的值之前,您需要检查索引是否有效(i >= 0
)。
因此,请按如下所示更改行。
while((i >= 0) && (key < a[i]))
相关文章:
- 尝试使用C++中的模板进行BST排序,但在使用随机字符串进行测试时不起作用
- 我的C++合并排序代码不起作用。我在这里错过了什么?
- 使用选择排序对数组数据结构进行排序,但它不起作用
- c++ 选择排序在特定情况下不起作用
- 为什么当我们使用等于'='符号比较器函数时,c ++的内置排序函数不起作用?
- C++插入排序错误功能不起作用
- 我正在编写一个拆分为 3 的合并排序,我不知道为什么它不起作用
- 为什么我的替代排序算法不起作用?
- 链接列表中的所有节点都相同,似乎插入不起作用
- 使用链表.为什么我的插入功能不起作用?
- 堆排序它不起作用或计算不正确
- C++ ceil() 在傀儡排序中不起作用
- 使用 std::move 在开始时插入矢量的中间元素不起作用
- 合并两个排序的列表 - 不起作用
- 排序功能不起作用
- 气泡排序不传递数据或不起作用
- C++ ODBC SQL - 插入到表中不起作用
- 插入排序不起作用
- 插入和合并排序在大数据集c++中不起作用
- 对元素进行排序,同时将它们插入到不起作用的向量中