随笔 - 31  文章 - 0  评论 - 1134  阅读 - 39万

温故而知新,算法在我心

2009.9.1号添加快速排序:
复制代码
//快速排序
//一:你可以随机找一个基点,然后和第一个数字交换
//二:left表示把指针指向第二个数字和right表示指针指向最后一个数字
//三:left向右移动,找到大于基点的(也就是第一个)就停止移动,right向左移动找到小于基点停止移动,left和right交换数字
//四:当left和right 交叉时,把right的值和基点交换,
//当right和left指向一个数字时,交换,排序完成
//当right和left分别指向第一个和最后一个时,就改为基点的一个数字为基点
//50 65 30 43 76 80 18 50
//第一次:18 50 30 42 50 80 76 65
//第二次:18 30 43 50 50 80 76 65
//第三次:18 30 43 50 50 65 76 80 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            
int[] array = new int[] 341592768 };
            Sort(array, 
0, array.Length - 1);

            
foreach (int a in array)
            
{
                Console.Write(a);
                Console.Write(
"");
            }

            Console.Read();
        }


        
static void Sort(int[] array, int min, int max)
        
{
            
if (min >= max)
                
return;

            
int minTemp = min;
            
int maxTemp = max;

            
int middle = min;

            
int temp;

            
while (min < max)
            
{
                
while (array[max] > array[middle])
                    max
--;

                temp 
= array[max];
                array[max] 
= array[middle];
                array[middle] 
= temp;
                middle 
= max;

                
while (array[min] < array[middle])
                    min
++;

                temp 
= array[min];
                array[min] 
= array[middle];
                array[middle] 
= temp;
                middle 
= min;
            }


            Sort(array, minTemp, middle 
- 1);
            Sort(array, middle 
+ 1, maxTemp);
        }

    }

}

复制代码


2008-3-8-今日又去面试了,碰到一题,回来仔细写了下,不知道是不是这样效率最好:
ggg.jpg

2008-3-7-最近又开始面试了,由于长期做NET应用,导致基础算法不清,错失很多良机,故回家补习,列出几例,以便面试临时必备:
aaa.jpg
如Combind(new int[]{1,3,5}, new int[]{2,4},c)则得到,1,2,3,4,5

ccc.jpg
如a,b,c,则Permute(0)则得到abc, acb, bac,.......所有组合

ddd.jpg

eee.jpg

fff.jpg

猫叫,主人醒来,老鼠逃
bbb.jpg
posted on   guozili  阅读(3616)  评论(21编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
< 2008年3月 >
24 25 26 27 28 29 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示