只循环一次的冒泡排序法---求解
如题,是否只循环一次就能实现冒泡排序,一般情况下都是需要嵌套循环2次的
int[] temps = { 10, 22, 4, 50, 100, 65, 56, 98, 105, 200, 900, 1 };
求大神祝我证道
------解决方案--------------------没有只循环一次就能实现完全排序的算法.
在冒泡法中只循环一次只能找到最大或最小数.
------解决方案--------------------你是搞研究还是做项目?如果是搞研究,不可能。如果是做项目,这样最方便了:
int[] temps = { 10, 22, 4, 50, 100, 65, 56, 98, 105, 200, 900, 1 };
List<int> l = new List<int>(temps);
l.Sort();
temps = l.ToArray();
------解决方案--------------------這樣算嗎?
int[] temps = { 10, 22, 4, 50, 100, 65, 56, 98, 105, 200, 900, 1 };
for (int i = 1; i < temps.Length; i++)
{
int a = temps[i-1];
if (temps[i] < temps[i - 1])
{
temps[i - 1] = temps[i];
temps[i] = a;
i = 0;
}
}
其實與兩層迴圈意思是一樣的,只是用一層來重覆比較。可以嗎?
------解决方案--------------------木有听说循环一遍的 即使有的话 通用性或者效率 可定也是很操蛋的 做研究的经常会搞这种没有用的东西
------解决方案--------------------没有一次循环的冒泡
------解决方案--------------------呵呵,O(n)时间复杂度的排序算法,可以震惊世界呢。
------解决方案--------------------
冒泡、一次循环,听起来就有点不对。。。
------解决方案--------------------
如果LZ是要找排序算法。。。
我感觉快速排序算法不算递归看上去符合LZ的描述点
------解决方案--------------------http://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95
------解决方案--------------------这个是可以有的。
这里的一次循环并不是说时间复杂度就是O(n),冒泡排序的时间复杂度肯定是O(n2)的。
这道题考的只是一个编程技巧而已。
一直想写篇博客来着,不过没时间写。
//two loops
static void Sort(int[] array)
{
int length = array.Length;
for (int i = 0; i < length - 1; i++)