可能又和标准的实现不一样, 但是自己的实现, 印象就会不一样的. # coding = utf-8 # 两个有序列表的合并,将two_list合并到one_list def merge_order_list(one_list, two_list): for item in two_list: # 先区分元素是否比列表的最大元素还要大. if item < one_list[-1]: for i in range(len(one_list)): # 先比较,再插入 if item <= one_…
我觉得不用抄书上的代码. 遇到实现问题,应该结合python本身的功能去解决. 比如,当合并有序列表时,为什么一定要一项一项比较,而不是使用list的sort函数呢? # coding = utf-8 # 两个有序列表的合并,将a_list合并到b_list # 如果是三个序列或是N个列表的合并呢? def merge_order_list(one_list, *more_list): for i in range(len(more_list)): for item in more_list[i…
一直到大四才开始写自己的第一篇博客,说来实在有点羞愧.今天写了关于排序的算法题,有插入排序,冒泡排序,选择排序,以下贴上用JAVA实现的代码: public class test5 { public static void print(int []array) //输出数组方法 { for(int i=0;i<array.length;i++) System.out.print(" "+array[i]); } public static void selectsort(int…
package org.xiu68.ch02; public class Ex2_22 { public static void main(String[] args) { // TODO Auto-generated method stub //两数组有序,寻找两数组合并后第k小元素,O(logm+logn) int[] a=new int[]{1,3,5,7,9,11,13,15,17,19}; int[] b=new int[]{0,2,4,6,8,10,12,14,16,18}; for…
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 // ListNode {val: 3,next: ListNode { val: 2, next: ListNode { val: 4, next: null } } } // ListNode {val: 1,next: ListNode { val: 3, next:…
将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 自己编写的代码:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * }…
day26 --------------------------------------------------------------- 实例039:有序列表插入元素 题目 有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 分析:原来的排序规律不知道,所以先判断原来的数组规律,再循环比对 1 def insert_arry(list, a): 2 if list[0]<=list[-1]: 3 for i in range(len(list)): 4 if list[i]…
def hb(list1,list2): result = [] while list1 and list2: ] < list2[]: result.append(list1[]) del list1[] else: result.append(list2[]) del list2[] if list1: result.extend(list1) if list2: result.extend(list2) print(result) return result list1 = [,,,,]…
最近在看<你也能看得懂的python算法书>, 自己来实现一下里面的算法吧. 有书里的有所不同. 比如这个题目,我的实现如下: from django.test import TestCase import copy # Create your tests here. a_list = [3, 5, 8, 45, 78, 2345] b_list = [2, 5, 8, 23, 46, 89, 3235] a_len = 0 c_list = a_list.copy() for b_len i…
二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2... 例如需要查找有序list里面的某个关键字key的位置,那么首先确认list的中位数mid,下面分为三种情况: 如果 list[mid] < key,说明key 在中位数的 右边: 如果 list[mid] > key,说明key 在中位数的 左边: 如果 list[mid] = key,说明key 在中位数的中间: 范围每次缩小一半,写个while的死循环知道找到为止. 二分法查找非常快且非常常用,但…