《算法导论》学习日记(一)

第一部分 基础知识

第一章 算法在计算中的作用

什么是算法?

算法就是将输入转化为输出的计算步骤的一个序列

什么是数据结构?

数据结构是一种存储和组织数据的方式,为了方便人们访问以及修改

没有一种数据结构是可以对所有的用途都有效的,所以说对于我们学习数据结构来说,最重要的是 知道几种数据结构的优势以及局限性

第二章 算法基础

什么是插入排序?

点击这里曾经写过一些排序
再来一遍加深理解:
input: n个数的一个序列(a1,a2,a3,…,an)
ouput: 满足从大到小
answer:


public class ChaRu {
	public static void main(String[] args) {
		int[] a = {5,2,4,6,1,7,3};
		//先来一个数组
		for(int i=1;i=0&&a[j]>key) {
				//i在不断增加,那么j就是她的前一个元素
				//如果前一个元素大于这个元素的话,就将其值赋予前一个元素
				//如果小于的话,就不用执行这个循环了
				a[j+1] = a[j];
				//直到j小于0,说明我们已经将我们的数字循环一遍了,进行了相对应的排序
				j = j-1;
				//这一步是为了让我们的数字能够不断进行循环,
			}
			//再将我们互换后的两个数字中的后一位作为关键词继续进行排序
			a[j+1] = key;
		}
		//输出一下子,就能看到第一个有关于算法的排序问题的代码运行成功了!!!
		for(int k = 0;k

《算法导论》学习日记(一)_第1张图片

设计算法之分治思想——归并排序

input:使用分治思想解决一个数组的排序问题,也就是使用归并排序来解决数组的排序问题
answer:


import java.util.Arrays;

//分治策略利用递归思想进行的归并排序
public class GuiBing {
	public static void main(String []args){
        int []arr = {9,8,7,6,5,4,3,2,1};
        sort(arr);
        System.out.println(Arrays.toString(arr));
    }
    public static void sort(int []arr){
        int []temp = new int[arr.length];
        //建立一个临时数组,以避免重复开辟新的临时数组
        sort(arr,0,arr.length-1,temp);
    }
    private static void sort(int[] arr,int left,int right,int []temp){
        if(left

简单写一下Sort方法中的递归排序a[start…mid]的一个过程,之后的merge是整合有序数组并排序的过程,这之后的总结再继续完善吧
《算法导论》学习日记(一)_第2张图片

你可能感兴趣的:(java,算法)