• 数据结构和算法


    常用的排序 

    1、插入排序

        插入排序的基本思想是:每次将一个待排序的记录按其关键字大小插入前面已经排好序的子记录中的适当位置,直到全部记录插入完成为止。常用的插入排序有直接插入排序和希尔排序。

      2、归并排序

      归并排序(Merge Sort)是利用“归并”技术来进行排序。归并排序是将若干个已经排序的序列合并成一个有序的序列。

    3、冒泡排序

       数字之间的两两比较,并且根据结果进行位置调整.

       C++ Code:

    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    
    void BubbleSort(int* pData, int count)
    {
    	int iTemp;
    	for (int i = 1; i < count; i++)
    	{
    		for (int j = count - 1; j  >= i; j --)
    		{
    			if (pData[j] < pData[j-1])
    			{
    				iTemp = pData[j-1];
    				pData[j-1] = pData[j];
    				pData[j] = iTemp;
    
    			}
    		}
    	}
    }
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	printf("---冒泡排序---");
    	int data[] = {11, 41, 52,63, 23,45,32 };
    		BubbleSort(data,7);
    	for (int i = 0; i < 7; i++)
    	{
    		cout<< data[i] << " ";
    
    	}
    	return 0;
    }
    

    4、二分查找(Binary Search)

    前提条件:带查找的数字要有序,

    1,2,3,4,5,6,7,10,11,12,13,14,15,16,17

    先找出中间的数字,然后要找的数字和中间的数字进行比较。找的数字小于中间数字,在继续在中间数字的左边找; 反之在右边找。

    16

    public class ArraySearchTest {
    	
    	public static void main(String[] args) {
    		
    		int[] a = new int[]{1,2,3,4,5,6,7,8,9};
    		
    		int index = binarySearcy(a, 8);
    		
    		System.out.println(index);
    	}
    
    	public static int binarySearcy(int[] array, int value){
    		int low = 0; //第一个元素的下标
    		int height = array.length - 1; //最后一个元素的下标
    		
    		int middle ;
    		while (low <= height) {
    			middle = (low + height) / 2;
    			if(array[middle] == value){
    				return middle;
    			}
    			
    			if(value < array[middle] ){
    				height = middle -1;
    			}
    			
    			if(value > array[middle] ){
    				low = middle + 1;
    			}
    		}
    		
    		return -1;
    	}
    }
    

      

  • 相关阅读:
    【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验二十六:VGA模块
    mini2440 u-boot下设置tftp
    mini2440 u-boot禁止蜂鸣器
    【转载】帧缓冲驱动程序分析及其在BSP上的添加
    debian7 amd64版本添加对x86包的支持
    debian7配置
    u盘安装debian 7(Wheezy) stabe
    【python练习题】实现字符串反转
    【python练习题】 删除列表中的重复元素(list的应用)
    【python练习题】冒泡排序 和插入排序 (list的应用)
  • 原文地址:https://www.cnblogs.com/linlf03/p/1997238.html
Copyright © 2020-2023  润新知