zoukankan      html  css  js  c++  java
  • C# 二分法查找和排序

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace AAA
    {
        public class Dichotomy
        {
            public static void DichotomySort(int[] array)
            {
                for (int i = 0; i < array.Length; i++)
                {
                    int start = 0;

                    int end = i - 1;

                    int middle = 0;

                    int temp = array[i];

                    while (start <= end)
                    {
                        middle = (start + end) / 2;

                        if (array[middle] > temp)//要排序元素在已经排过序的数组左边
                        {
                            end = middle - 1;
                        }
                        else
                        {
                            start = middle + 1;
                        }
                    }
                    for (int j = i - 1; j > end; j--)//找到了要插入的位置,然后将这个位置以后的所有元素向后移动
                    {
                        array[j + 1] = array[j];
                    }

                    array[end + 1] = temp;

                }
            }

            public static long DichotomySearch(long[] array, long key, long high, long low)
            {
                long middle = 0;

                if (high < low)
                {
                    return -1;
                }

                middle = (low + high) / 2;

                if (array[middle] == key)
                {
                    return middle;
                }
                else if (array[middle] > key)
                {
                    return DichotomySearch(array, key, middle - 1, low);
                }
                else
                {
                    return DichotomySearch(array, key,high, middle + 1);
                }
            }
        }
    }

    代码改变世界
  • 相关阅读:
    JS 实现点击<a> 标签的时候给其换背景
    LeetCode解题思路 (一)
    读书笔记之《操作系统概念》
    读书笔记之《程序员代码面试指南(字符串问题)》
    读书笔记之《程序员代码面试指南(栈和队列)》
    读书笔记之《程序员代码面试指南(数组和矩阵问题)》
    读书笔记之《程序员代码面试指南(位运算及大数据)》
    项目常用功能代码
    读书笔记之《深入理解Java虚拟机》
    读书笔记之《程序员代码面试指南(链表问题)》
  • 原文地址:https://www.cnblogs.com/oreobyzf/p/5897929.html
Copyright © 2011-2022 走看看