数据结构-实现正负数重新排序

//直接上代码: 1 /// <summary>
 2         /// 实现正负数重新排序
 3         /// </summary>
 4         /// <param name="arr"></param>
 5         public static void ZhengfuSort(int[] arr)
 6         {
 7             List<int> list = new List<int>();
 8             foreach(var item in arr)
 9             {
10                 if(item<0)
11                 {
12                     list.Add(item);
13                 }
14             }
15             foreach (var item in arr)
16             {
17                 if (item > 0)
18                 {
19                     list.Add(item);
20                 }
21             }
22             foreach (var item in list)
23             {
24                 Console.WriteLine(item+",");
25             }
26             Console.ReadKey();
27         }

原文地址:https://www.cnblogs.com/luoshengjie/p/10366230.html

时间: 2024-10-23 13:03:11

数据结构-实现正负数重新排序的相关文章

java中的移位运算符与正负数转换

移位 java 中有对 二进制移动分为 左移(<<) 和右移(>>) 其中右移还分为 有符号右移(>>) 和无符号右移(>>>) 1.有符号右移:将二进制向右移动 如果原来符号位为0 则新符号位也用0 否则用1; 2.无符号右移:将二进制向右移动 不管原来的符号位是0还是1 一律用0 补位; 正负数转换 举个例子: 3的二进制 用一个字节表示 0000 0011 正常一个负数的变现方式是:其正数按位取反再加1 0000 0011 取反:1111 110

一个未排序整数数组,有正负数,重新排列使负数排在正数前面,并且要求不改变原来的 相对顺序 比如: input: 1,7,-5,9,-12,15 ans: -5,-12,1,7,9,15 要求时间复杂度O(N),空间O(1) 。

#include <iostream> using namespace std; void mSort(int *arr, int iLen) { int i, j, k, tmp; for(i = 0, j = 0; i < iLen; i++) { if (arr[i] < 0) { tmp = arr[i]; for(k = i; k > j; k--) arr[k] = arr[k - 1]; arr[j++] = tmp; } } } int main() { in

判断正负数

#!/usr/bin/env python # -*- coding: UTF-8 -*- # # Copyright [Gtlions Lai]. # Create Date: # Update Date: __authors__ = '"Gtlions Lai" <[email protected]>' """判断正负数. 主要功能描述. ClassFoo: 类概述. functionBar(): 函数概述. ""&qu

某数组里存在乱序的正负数字,要求将负数放到左边,正数放到右边,并且正负数的相对位置不改变

先说下思路: 1.先遍历数组,将正负数的个数求出来,当然,如果存在零值,也需要求出个数来 2.根据之前求出的个数分别申请两个数组,用来存放正负数 3.再次遍历数组,将正负数放进第二步申请的两个数组中,零值需要排除在外 4.将第三步得到的两个数组再填回原始数组(也可以再申请一个数组存放结果) 完成! 以下是代码(vs2013,64位win8): 1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 //定义一个原始数组

实现正负数区分#跳转指令

题目要求大意: 在数据段指定一组数据,对该组数据进行:正负分类,分别记下两类的绝对值之和与个数只和 参考代码: include irvine32.inc .data arr dd 0,-1,1,-2,2,-3,3 count dd ($-arr)/4 sum1 dd 0 sum2 dd 0 cou1 dd 0 cou2 dd 0 I dd -1 ;1表示正记录,2表示负记录 .code main PROC lea esi,arr mov ecx,0 ;把每个数据取出 lop: mov ebx,[

TCP通信实现对接硬件发送与接收十六进制数据 &amp; int与byte的转换原理 &amp; java中正负数的表示

今天收到的一份需求任务是对接硬件,TCP通信,并给出通信端口与数据包格式,如下: 1.首先编写了一个简单的十六进制转byte[]数组与byte[]转换16进制字符串的两个方法,如下: /** * 将十六进制的字符串转换成字节数组 * * @param hexString * @return */ public static byte[] hexStrToByteArrs(String hexString) { if (StringUtils.isEmpty(hexString)) { retur

Int32 最大的数值是多少???(附十进制十六进制相互转换且包含正负数的java代码)

正数转二进制很简单,转十六进制也很简单. 那么负数的情况下呢?在计算机中无法识别你给的符号"+","-",计算机只认识0和1 那么在二进制中如何表示负数. 先简单介绍一下负数如何转二进制,八进制,十六进制: 比如给的是-4 那么先算出+4的二进制表示: 1 0 0 但是请记住我们需要在前面补0,因为在计算机中一个Int32为的数字是一个长度为32的内存空间,计算机眼里 0000 0000 0000 0000 0000 0000 0000 0100  才是4,这是源码

正负数的源码 反码 补码 转

首先提几个概念: 原码,反码,补码 原码是什么? 原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码.负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码 举例说明: int类型的 3 的原码是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得: 00000000 00000000 00000000 00000011 int类型的 -3 的绝对值的二进制位就是上面的 11B 展开后高位补零就得: 10000000 00000000 000

正负数的源码、反码、补码相互转换

一.正数 正数的源码.反码.补码都是相同的. 二.负数 1.负数的源码与反码的相互转换 负数的源码转换为反码:符号位不变,数值位按位取反. 例如: 源码:1000 1100 反码:1111 0011 负数的反码转换为源码:符号位不变,数值位按位取反. 例如: 反码:1011 0101 源码:1100 1010 2.负数的源码和补码的相互转换 负数的源码转换为补码:1.先转换为反码(符号位不变,数值位按位取反)2.在补码的基础上末位加一.      例如: 源码:1010 0101 反码:1101