美文网首页
【排序】和0交换排序

【排序】和0交换排序

作者: 菜鸟learn编程 | 来源:发表于2018-09-14 21:16 被阅读0次
  • 题目描述:长度为 N 的数组乱序存放着 0 到 N-1,只能进行 0 和其它数的交换,完成从大到小的排序。
\\ n: 要和 0 交换的数字
\\ len: 数组的长度
public class Solution {
  public void swapWithZero(int[] array, int len, int n) {
    Main.SwapWithZero(array, len, n);
  }

  public void sort(int[] array, int len) {
    swapWithZero(array, len, array[0]);
    swapWithZero(array, len, len-1);
    for(int i=1; i<len-1; i++) {
      swapWithZero(array, len, a[i]);
      swapWithZero(array, len, i);
    }
    swapWithZero(array, len, len-1);
  }
}
  • 解题思路:将 0 依次放在数组中对应的位置上,然后让 0 和值为 0 所在数组当前位置下标处进行交换。需要注意的是,首先将 N-1 放在 array[0] 位置上,遍历交换完数组后,0 将会放置在最后的位置 array[len-1] 上,最后将 0 和 N-1 进行交换,完成了排序。

相关文章

  • 【排序】和0交换排序

    题目描述:长度为 N 的数组乱序存放着 0 到 N-1,只能进行 0 和其它数的交换,完成从大到小的排序。 解题思...

  • 排序算法之交换排序

    利用交换数据元素的位置进行排序的方法称为交换排序。常见的交换排序方法有冒泡排序和快速排序。 1. 冒泡排序 1.1...

  • JavaScript:十大排序的算法思路和代码实现

    本文内容包括:(双向)冒泡排序、选择排序、插入排序、快速排序(填坑和交换)、归并排序、桶排序、基数排序、计数排序(...

  • 不积跬步之快速排序

    快速排序使用了分治思想来实现。 和冒泡排序一样,快速排序也属于交换排序,通过元素直接的比较和交换位置来达到排序的目...

  • iOS排序算法

    (插入排序、选择排序、交换排序、归并排序、基数排序) 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序...

  • IOS 常用算法

    一:排序算法 排序方式有插入排序,选择排序和交换排序三种。插入排序有直接插入排序和希尔排序。选择排序有简单选择排序...

  • 经典算法---排序(摘抄)

    一、排序算法 前言:常见排序算法分类 非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入...

  • javascript实现排序算法(三)

    前两篇博客介绍了排序算法中的交换排序中的冒泡排序和快速排序。虽然两种排序都属于交换排序,但是这两个排序的时间复杂度...

  • 排序

    稳定排序 不稳定排序 交换排序 选择排序

  • 排序算法的一些优化和改进

    1、冒泡排序 O(n^2) 冒泡排序,记下最后一次交换的位置,如果后边没有交换则交换位置为0,必然是有序的,然后下...

网友评论

      本文标题:【排序】和0交换排序

      本文链接:https://www.haomeiwen.com/subject/tyeagftx.html