使用Key在Python中插入排序

时间:2018-08-19 05:28:10

标签: python insertion-sort

var rp = require('request-promise');
const req = {
   uri: uri,
   method: 'GET'/'POST'
}
rp(req)
    .then((res) => {
        //Do something 
    })
    .catch((error) => {
       //Do something with error
    });

你好,我尝试了两种方法在c ++中都可以进行简单的插入排序,但是在python中却无法正常工作,但是它们都给出了类似的答案 第一个:

def insertion_sort2(A):
  for i in range(1,len(A)):
      key = A[i]
      j = i-1
      for j in range(i-1,0,-1):
          if A[j] > key :
              A[j+1] = A[j]
          else:
              A[j+1] = key
              break

  for i in range(1, len(arr)):

    key = arr[i]

    j = i-1
    while j >=0 and key < arr[j] :
        arr[j+1] = arr[j]
        j -= 1
    arr[j+1] = key

第二个:     甚至不排序

注意:第二个中断后开始,我没有同时运行它们,我注释掉了一个然后运行了另一个

1 个答案:

答案 0 :(得分:1)

首先,您不会进入内循环中数组的第0个元素。在python的range函数中,范围从第二项开始算起。在放置范围(i-1,-1,-1)时,范围变为i-1至0。 其次,您无需交换两个连续的元素,只需为第(j)个元素分配第(j + 1)个元素的值即可。但是,将第j个值分配给第(j-1)个元素呢? 第三,做A [j + 1] =键没有意义,因为它已经是键。

def insertion_sort2(A):
  for i in range(1,len(A)):
      key = A[i]
      j = i-1
      for j in range(i-1,-1,-1):
          if A[j] > key :
              A[j+1], A[j] = A[j], A[j+1]
          else:
              break