有两种方法可以解决此问题。让我们检查第一种方法。
方法1
输入数组= [1,0,1,0,1,0,0,1] => [0,0,0,0,1,1,1,1]
步骤1: 定义一个接受数组的方法。
步骤2: 计数0。
步骤3:存储0直到计数变为0,然后在其余索引处存储1。
步骤4:最后,返回数组。
package main import "fmt" func binarySort(arr []int) []int{ count := 0 for i:=0; i<len(arr); i++{ if arr[i]==0{ count++ } } for j:=0; j<len(arr); j++{ if j<count{ arr[j] = 0 } else { arr[j] = 1 } } return arr } func main(){ fmt.Println(binarySort([]int{1, 0, 1, 0, 1, 0, 0, 1})) fmt.Println(binarySort([]int{1, 1, 1, 1, 1, 1, 1, 1})) fmt.Println(binarySort([]int{0, 0, 0, 0, 0, 0, 0, 0})) }输出结果
[0 0 0 0 1 1 1 1] [1 1 1 1 1 1 1 1] [0 0 0 0 0 0 0 0]
方法2
现在,让我们检查第二种方法。
步骤1: 定义一个接受数组的方法。
步骤2: 声明枢轴元素及其索引j。
步骤3:迭代给定的数组。如果元素小于支点,则交换并增加支点的索引。
步骤4:最后,返回数组。
package main import "fmt" func binarySort(arr []int) []int{ pivot := 1 index := 0 for i:=0; i<len(arr); i++ { if arr[i]<pivot{ arr[i], arr[index] = arr[index], arr[i] index++ } } return arr } func main(){ fmt.Println(binarySort([]int{1, 0, 1, 0, 1, 0, 0, 1})) fmt.Println(binarySort([]int{1, 1, 1, 1, 1, 1, 1, 1})) fmt.Println(binarySort([]int{0, 0, 0, 0, 0, 0, 0, 0})) }输出结果
[0 0 0 0 1 1 1 1] [1 1 1 1 1 1 1 1] [0 0 0 0 0 0 0 0]
本文向大家介绍编写Golang程序以使用冒泡排序对数组进行排序,包括了编写Golang程序以使用冒泡排序对数组进行排序的使用技巧和注意事项,需要的朋友参考一下 定义:冒泡排序是最简单的排序算法,通过以错误顺序重复交换相邻元素来工作。 例子 输入arr = [7、5、1、6、3] 第一次迭代=> swap(7,5)=> swap(7,1)=> swap(7,6)=> swap(7,3)=> [5,1
我被要求做一个按升序对数组进行排序的程序。我这样做了: 输入不会超过10个数字。这可以用比我这里更少的代码完成吗?我希望代码尽可能短。任何帮助都将不胜感激。谢谢!
问题内容: 有没有办法以编程方式对JTable进行排序? 我的JTable排序工作正常(使用setRowSorter),以便当用户按任意列时,表将被排序。 我知道,SWingX JXTable可能可以工作,但我不想麻烦,因为其他所有事情现在都可以正常工作,而且我不知道NetBeans的可视化编辑器如何处理JXTable等。 编辑: 选定的答案是指我的声明(现已删除),该声明对Sun的页面的答案不起
本文向大家介绍Java程序以区分大小写的顺序对数组进行排序,包括了Java程序以区分大小写的顺序对数组进行排序的使用技巧和注意事项,需要的朋友参考一下 可以使用java.util.Arrays.sort()方法以区分大小写的顺序对数组进行排序。在这种情况下,此方法仅需要单个参数,即要排序的数组。演示此的程序如下所示- 示例 输出结果 现在让我们了解上面的程序。 首先定义数组arr []。然后打印未
问题内容: 我在Swift Beta中实现一种算法,发现性能非常差。深入研究后,我意识到瓶颈之一就是对数组进行排序一样简单。相关部分在这里: 在C ++中,类似的操作在我的计算机上花费 0.06s 。 在Python中,它花费 0.6秒 ( 绝招 ,仅y =整数列表的sorted(x))。 在Swift中,如果使用以下命令进行编译,则需要 6s : 如果使用以下命令进行编译,则 最多 需要 88s