Nic*_*ick 1 c++ arrays sorting algorithm
我已经被分配了两个类似的任务,这应该很容易,但我需要澄清我能用c ++做什么和不做什么.
任务1:假设您有一个包含两个不同键的n个元素的数组,true和false.给出一个O(n)算法来重新排列列表,以便所有假元素都在真元素之前.您可以仅使用恒定的额外空间.
对于任务2,我需要做同样的事情,但现在有一个额外的键"可能".所以我需要对数组进行排序,以便在O(n)之前可能先假,并且可能先于真.
我决定在第一个任务上使用插入排序,在第二个任务上快速排序.我的第一个问题是,创建一个数组并使用true false和/或可能的值对它进行排序是否理想.在我看来,我想要改变false,true和0,1,2的所有值,并按数字升序排序数组.我会通过首先遍历数组并更改值然后排序后执行此操作.什么是改变价值观的最佳方式(如果需要的话).这会使算法保持在O(n)时间吗?
谢谢您的帮助!
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |