【排序】和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 进行交换,完成了排序。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,437评论 0 2
  • 排序算法说明 (1)排序的定义:对一序列对象根据某个关键字进行排序; 输入:n个数:a1,a2,a3,…,an 输...
    code武阅读 694评论 0 0
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,297评论 6 13
  • 梅兰芳的“一戳一扶一推” 早年,梅兰芳与人合演《白蛇传》,梅兰芳在剧中饰演白娘子。据中,白娘子有一个动作,就是在负...
    anliy阅读 1,023评论 0 0
  • 使用runtime给分类添加属性 objc_setAssociatedObject这四个后面的参数分别表示:源对象...
    William__Lu阅读 299评论 0 0