一个数组有10个元素如何在第一个元素上插入一个0并且保证后面的元素值和排列顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个数组有10个元素如何在第一个元素上插入一个0并且保证后面的元素值和排列顺序相关的知识,希望对你有一定的参考价值。

int[]a=1,2,3,4,5,6,7,8,9,0;
变成int[]b=0,1,2,3,4,5,6,7,8,9;

用循环 交换 代码如下
int[]b//定义数组
int len=a.lenth();
for(int i=0;i<len;i++)

if(i==0)
b[0]=0; //也可以b[i]=a[len-1];
else
b[i]=a[i-1];

如果是c# 或者是java的话 他们是直接把数组看成是对象,能够实现在具体位置插值 很好很强大
参考技术A 用数组连接功能 contact 在a这个数组之连接一个 [0] 就行了

go 已知有个排序(升序)的数组,要求插入一个元素,最后打印该数组,顺序依然是升序

// 任意位置插入数字类型的元素
// @param slice []int 将指定元素插入的切片
// @param num int 插入的指定元素
// @param index int 插入的指定位置
func arbitrarilyInsertElement(slice []int, num int, index int) []int 
	slice = append(slice[:index], append([]intnum, slice[index:]...)...)
	return slice


// 2、已知有个排序(升序)的数组,要求插入一个元素,最后打印该数组,顺序依然是升序
// @params arr [5]int 升序数组
// @params leftIndex int 左值索引
// @params rightIndex int 右值索引
// @params num int 要插入的值
// @return bool
func exec2(arr [5]int, leftIndex int, rightIndex int, num int) bool 
	slice := arr[:] // 将数组转成切片后才能新增元素
	// 因为数组是升序的,所以可以使用二分查找来做exec2
	middleIndex := (leftIndex + rightIndex) / 2 // 中间值的索引
	middle := slice[middleIndex]                // 中间值

	if leftIndex > rightIndex 
		// 防止右值索引小于0
		if rightIndex < 0 
			rightIndex = 0
		
		
		if num > arr[rightIndex] 
			// num在中间值右侧,左值索引向右移动(+1),右值索引不变,所以使用rightIndex
			// 因为左值索引向右移动了,所以当前左值索引(leftIndex)就是需要将num插入的位置
			slice = arbitrarilyInsertElement(slice, num, leftIndex)
		 else if num < arr[leftIndex] 
			// num在中间值左侧,右值索引向左移动(-1),左值索引不变,所以使用leftIndex
			// 因为右值索引向左移动了,所以当前右值索引(rightIndex)就是需要将num插入的位置
			slice = arbitrarilyInsertElement(slice, num, rightIndex)
		
		fmt.Println("slice=", slice)
		return false
	

	if num < middle 
		rightIndex = middleIndex - 1
	 else if num > middle 
		leftIndex = middleIndex + 1
	 else if num == middle 
		// num等于中间值,所以可以直接使用中间值索引(middleIndex)作为将num插入的位置
		slice = arbitrarilyInsertElement(slice, num, middleIndex)
		fmt.Println("slice=", slice)
		return true
	
	return exec2(arr, leftIndex, rightIndex, num)


func main() 
	arr := [5]int1, 3, 5, 7, 9 // 升序数组
	num := 5                     // 要插入的值
	exec2(arr, 0, len(arr)-1, num)

以上是关于一个数组有10个元素如何在第一个元素上插入一个0并且保证后面的元素值和排列顺序的主要内容,如果未能解决你的问题,请参考以下文章

Java定义一个一维数组,并给每个元素赋值为数组下标的值,并显示

[C]排序并插入

如何将多个元素插入到 JQuery 中的数组中?

调整c++数组的大小和复制

编写C程序,在给定数组的第i个元素前插入元素b,i与b的值由键盘输入。

如何在两个单独的视图控制器上跟踪数组的元素?