zoukankan      html  css  js  c++  java
  • 《数据结构》查找和排序技术

    1{查找的定义:给定一个值,在表中去确定一个某关键字等于查找的给定的这个数据元素;

    使用的方法:

      顺序查找法(从表的第一个开始去依次查找,直到找到需要寻找的那个值返回结束;)

        使用的情况:

          。线性表为无序表;

          。或者也可以为链式结构的表;

        缺点:效率比较低;

      二分查找法:

        只适用于查找有序的表,通过取中间的值与自己相互对比去计算这个数值在前半部分还是在后半部分;

        对于长度为n的有序线性表只需要查找log2n次就可以得到结果;}

    2{排序的方法:

        排序的概念:是将无无须序列的值整理成按照一定的有序的按值非递减的有序序列的;也就是将一组无须的记录序列整理成有序的记录序列的一种操作;

    方法:

      1:交换类排序:借助元素之间进行相互交换的一种方法;

      (同类型的交换式排序的方法有):冒泡排序:最坏需要比较次数n(n-1)/ 2;

                    :快速排序法:通常最坏也需要n(n-1)/2次,但是在实际的应用中它比冒泡排序法的效率要高。

      2:插入排序法:将无须的线性表依次插入有序的线性表中的方法;

        简单插入排序法:最坏需要n(n-1)/2次;

        希尔排序法:(将线性表分成若干个小序列进行插入排序)最坏需要O(n^1.5)其中O表示时间复杂度;

      3:选择类的排序法:扫描全表选出最小的那个值然后排到最前面然后依次类推知道子表为空的时候结束;

            方法:1:简单选择排序法:最坏的次数为n(n-1)/2次;

               2:堆排序法:最坏的次数为O(nlog2n)次;

    }

  • 相关阅读:
    Overloaded的方法是否可以改变返回值的类型
    parseXXX的用法
    java的类型转换问题。int a = 123456;short b = (short)a;System.out.println(b);为什么结果是-7616?
    UVA 10405 Longest Common Subsequence(简单DP)
    POJ 1001 Exponentiation(大数处理)
    POJ 2318 TOYS(计算几何)(二分)
    POJ 1265 Area (计算几何)(Pick定理)
    POJ 3371 Flesch Reading Ease (模拟题)
    POJ 3687 Labeling Balls(拓扑序列)
    POJ 1094 Sorting It All Out(拓扑序列)
  • 原文地址:https://www.cnblogs.com/ylllove/p/6038292.html
Copyright © 2011-2022 走看看