(如有转载的话,请带上我,什么?不带,你把的东西拿走了,我难道不要点利息吗)
哈喽,各位朋友, 好久没和你们说话了,我贼无聊= =
咳咳,本期继续开始我们的排序算法之路
《1》老样子,先上代码(不要退了啊,慢慢看,你学过物理吧,物理你都看了,为什么算法你不看呢?o(* ̄︶ ̄*)o)
(额...这个博客表情这么少,怪不得个个都没有老婆呢!——内涵段子)
算法本来就是一个异常难学的一项技术,如果你放弃了,你可以和码农娱乐玩耍了,嘿嘿
2.插入排序
static void Main(string[] args)
{
int[] a = { 12,18,10,5,9,120 };
foreach (var b in Charu(a))
{
Console.Write(b + "\n");
}
Console.Read();
}
//下面为重点
public static int[] Charu(int[] a)
{//记录变量
int i, j, p;
for (i = 1; i < a.Length; i++)
{ //当前牌 与 手中牌 一一比较
if (a[i] < a[i - 1])
{
//记录手中牌
p = a[i];
//j为手中牌 ,与 当前牌 一一比较
for (j = (i-1); j >= 0 && a[j] > p; j--)
{
//如果 手中牌 大于 当前牌
a[j + 1] = a[j];//将手中牌 向前移动一位
}
//留下一个空位,即加入最小牌
a[j+1] = p;
//排序完毕
}
}
return a;
}
//T(n)=O(n²)
//总结重要思想: 以i为界,i前为要排序的,i后为未排序的
《2》讲解(从小到大)
我希望大家一句代码一句代码的看 与 写,看完后写,写完后,看我讲
玩过牌吧,朋友,知道怎么排序牌吧?
什么,知道?好吧,不用我讲了,你已经会了!
什么,不知道?你连牌都不会排序,我还讲什么?
什么,半会半不会?你还是让你那半会给你的半不会讲吧....我撤了,讲个毛线啊
--------------------------------------------------------------------------------------
活跃一下子气氛,呵呵
开始咯
话说,3个月前,我还在算法中无限徘徊,今天我又要和这个天天在我脑袋里面开“DJ”跳舞的小皮蛋见面了
哎,真扯.....
第一步:外层的“套路”
for (i = 1; i < a.Length; i++)
{
//外层循环,都会吧?(这算话吗?)
}
第二步:内层的“艰难”
if (a[i] < a[i - 1])
{
//如果当前牌 小于 手自牌 则 移动(从小到大)
}
第三步:大脑的“运转”
//记录当前牌
p = a[i];
//j为手中牌 ,与 当前牌 一一比较
for (j = (i-1); j >= 0 && a[j] > p; j--)
{
//如果 手中牌 大于 当前牌
a[j + 1] = a[j];//将手中牌 向前移动一位
}
//留下一个空位,即加入最小牌
a[j+1] = p;
//排序完毕
感谢大家的观赏!