康 桥 2012-02-11 20:42
这太巧妙了……
zunkun 2012-01-06 07:46
文章出处http://www.cnblogs.com/kkun/archive/2011/11/23/2260270.html?login=1#commentform
xhp 2011-12-16 11:11
博主,头像不错。
hoodlum1980 2011-12-12 04:48
代码写的不对把?
kkun 2011-12-09 19:14
[quote]iTech:有重复的元素呢?[/quote]
那就使用集合...
[code=csharp]
List<int>[] buget = new List<int>[10];
[/code]
iTech 2011-12-09 15:23
有重复的元素呢?
yuronglong 2011-12-08 21:07
忘了语法高亮了
[code=cpp]
#include <iostream>
using namespace std;
int main()
{
int a[101];
int temp,flag=0,tmp;
a[0]=0;
for(int i=1;i<=100;i++)
{
cin>>a[i];
}
for(int i=1;i<=100;i++)
{
if(flag==2)
{
a[temp]=a[i-1];
a[i-1]=tmp;
break;
}
if((a[i]>a[i+1])||(a[i]<a[i-1]))
{
tmp=a[i];
temp=i;
flag++;
}
}
for(int i=1;i<=100;i++)cout<<a[i]<<" ";
cout<<"\n";
system("pause");
return 0;
}
[/code]
yuronglong 2011-12-08 21:06
#include <iostream>
using namespace std;
int main()
{
int a[101];
int temp,flag=0,tmp;
a[0]=0;
for(int i=1;i<=100;i++)
{
cin>>a[i];
}
for(int i=1;i<=100;i++)
{
if(flag==2)
{
a[temp]=a[i-1];
a[i-1]=tmp;
break;
}
if((a[i]>a[i+1])||(a[i]<a[i-1]))
{
tmp=a[i];
temp=i;
flag++;
}
}
for(int i=1;i<=100;i++)cout<<a[i]<<" ";
cout<<"\n";
system("pause");
return 0;
}
天边芳草 2011-12-08 13:48
支持一下
TinyTian 2011-12-06 22:30
你要设计永动机么??
陈梓瀚(vczh) 2011-12-05 23:37
为什么我怎么读那段文字都觉得是O(n2)
kkun 2011-11-29 12:59
谢谢,已更正
porschev 2011-11-29 11:43
LZ讲的还是够细,例子就做的不细致了,
你的代码演示一看就知道要报错,数组越界,
你的桶的长度声明的长度为9,而你排序数组中最大的值为9,
buget[unsorted[i]] = unsorted[i]; 这句就会出错,
索引从0开始,你懂的...
修改桶的长度,变成10
var buget = new int[10];
parabeyond 2011-11-29 09:25
[code=csharp]
int[] list = {1,2,3,4,8,6,7,5,9,10 };
for (int i = 0; i < list.Length; i++)
{
int temp = i + 1;
if (temp != list[i])
{
temp = list[i];
list[i] = list[temp - 1];
list[temp - 1] = temp;
break;
}
}
foreach (var item in list)
{
Console.WriteLine(item);
}
[/code]
kkun 2011-11-25 18:22
你写得更详细,谢谢
潇洒一回 2011-11-25 16:39
[2 1 3 4 6 5 8 7]
第五次循环,更新距离为1,三处交换
[1 2 3 4 6 5 8 7]
[1 2 3 4 5 6 8 7]
[1 2 3 4 5 6 7 8]
潇洒一回 2011-11-25 16:20
1、如无序数组[3 2 4 1 5 9]
[b]a),[/b]先把第一项[3]取出来,
用[3]依次与其余项进行比较,
如果比[3]小就放[3]前边,2 1 都比[3]小,所以全部放到[3]前边
如果比[3]大就放[3]后边,4 5 9比[3]大,放到[3]后边
一趟排完后变成下边这样:
排序前 3 2 4 1 5 9
排序后 2 1 3 4 5 9
[b]b),[/b]对前半拉[2 1]继续进行快速排序
重复步骤a)【取第一项 2与其余项比较】后变成下边这样:
排序前 2 1
排序后 1 2
前半拉排序完成。
[b]c),[/b]对后半拉[4 5 9]继续进行快速排序
重复步骤a)【取第一项 4与其余项比较】后变成下边这样:
排序前 4 5 9
排序后 4 5 9
[b]d),[/b]对后半拉[5 9]继续进行快速排序
重复步骤a)【取第一项 5与其余项比较】后变成下边这样:
排序前 5 9
排序后 5 9
d在这个例子中可以忽略,但是当后面的数字较小时就得必不可少的循环继续下去。
前半拉排序完成。
总的排序也完成:
排序前:[3 2 4 1 5 9]
排序后:[1 2 3 4 5 9]
潇洒一回 2011-11-25 16:03
看了几个排序,原理讲得很不错。支持下。
谑孩无牙 2011-11-24 22:59
学习!
kkun 2011-11-24 19:51
[quote]天空海阔:
[quote]子数组与女数组合并[/quote]
....[/quote]
子数组与子数组...
天空海阔 2011-11-24 18:16
[quote]子数组与女数组合并[/quote]
....
kkun 2011-11-24 14:40
[quote]贝加:如果例子中用十位上数字有相等数来说明就更好了[/quote]
没错.回头更新
大白糖 2011-11-24 13:15
顶一下,,顺便mark
kkun 2011-11-24 10:40
[quote]贤达:[url=http://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95]http://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95[/url][/quote]
你这个和下边这个链接里,是我"发现"算法的来源
http://en.wikipedia.org/wiki/Proxmap_sort
Bubble sort
Cocktail sort
Odd–even sort
Comb sort
Gnome sort
Quicksort
Stooge sort
Bogosort
Selection sort
Heapsort
Smoothsort
Cartesian tree sort
Tournament sort
Cycle sort
Insertion sort
Shell sort
Tree sort
Library sort
Patience sorting
Merge sort
Polyphase merge sort
Strand sort
American flag sort
Bead sort
Bucket sort
Burstsort Counting sort
Pigeonhole sort
Proxmap sort
Radix sort
Flashsort
Bitonic sorter
Batcher odd–even mergesort
Pairwise sorting network
Timsort
Introsort
Spreadsort
UnShuffle sort
JSort
Spaghetti sort
Bogosort
Topological sorting
Pancake sorting
贤达 2011-11-24 10:00
[url=http://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95]http://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95[/url]
贤达 2011-11-24 10:00
http://zh.wikipedia.org/wiki/%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95
kkun 2011-11-24 09:55
谢谢以上兄弟捧场,不一一回复了
kkun 2011-11-24 09:54
[quote]Repository:看了一个,Quick Sort排序思想没讲明白。不够细。[/quote]
两点,1是谁比我小站我前边,比我大站我后边,
2是站完要就分成了两组,前半组都比后半组小
之后一样了,分别对前半组和后半组再快排
丫头小静(Cathy) 2011-11-24 09:36
支持,建议用程序实践一下会更好
Repository 2011-11-24 09:31
看了一个,Quick Sort排序思想没讲明白。不够细。
iTech 2011-11-24 09:28
太好了,学习!
ITMelody 2011-11-24 09:18
菜鸟谢过园主。
I'm CY 2011-11-24 09:01
收藏了
Hailoong 2011-11-24 00:55
感谢楼主分享。
MyNewID 2011-11-23 19:07
收藏了...
kkun 2011-11-23 18:32
[quote]幽灵主:有意思[/quote]
对这个排序我也很有感情,是挺有意思的
只是不知道这个代码该怎么写,有空思考思考争取写一个通用的方法来
贝加 2011-11-23 17:26
如果例子中用十位上数字有相等数来说明就更好了
阿 飞 2011-11-23 17:10
这么多排序啊,顶起来
十一月的雨 2011-11-23 16:50
顶一个
遗失的天空 2011-11-23 15:59
额 好多啊 支持
Weshadow 2011-11-23 15:53
顶一个呀····
kkun 2011-11-23 15:52
[quote]菜鸟吴迪:帅哥,开始 研究算法了1,^_^[/quote]
嗯,以前老怕不敢看,现在发现其实大部分还是很简单的,也挺有意思,呵呵
菜鸟吴迪 2011-11-23 15:44
帅哥,开始 研究算法了1,^_^
kkun 2011-11-23 15:27
[quote]繁星皓月:呵呵,学习学习,支持一下[/quote]
谢谢支持
繁星皓月 2011-11-23 15:14
呵呵,学习学习,支持一下
小比丘 2011-11-15 19:31
支持开源,支持楼主!
不懂设计 2011-08-10 14:27
顶...........
readfuture 2011-08-10 13:49
写的不错,学习了!