精华内容
下载资源
问答
  • 2020-12-08 05:11:49

    比如[1,2,3,4,5],排列结果可以是[1,5,3,4,2]

    代码:

    /**

    * Created by wuchao on 17-3-29.

    */

    import java.util.*;

    public class test {

    public static int array[] = {1,2,3,4,5,6,7,8,9,1,3,4,6,3,4,5,5,4,4};

    public static void main(String[] args) {

    sort(array);

    System.out.println(Arrays.toString(array));

    }

    public static void sort(int[] array){

    int len = array.length;

    if(len==1) return;

    int i=0,j=len-1;

    while(i

    //从左找第一个偶数,并退出循环

    while(isOdd(array[i])&&i

    //从右找第一个奇数,并退出循环

    while(!isOdd(array[j])&&i

    //奇数和偶数交换

    int tmp = array[i];

    array[i]=array[j];

    array[j]=tmp;

    }

    }

    //判断是否是奇数

    public static boolean isOdd(int n){

    if((n&1)==1) return true;

    return false;

    }

    }

    更多相关内容
  • 目的:输入一个数组,使得数组中奇数在前偶数在后。 代码: #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int arr[10] = {0}; for (int i = 0; i <= 9; i++) { scanf("%d...

    目的:输入一个数组,使得数组中奇数在前,偶数在后。
    代码:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include <stdio.h>
    int main()
    {
    	int arr[10] = {0};
    	
    	for (int i = 0; i <= 9; i++)
    	{
    		scanf("%d", &arr[i]);            //输入数组中的各个元素
    	}
    	int left = 0;
    	int right = 9;
    	while (left < right)     //循环实现
    	{
    		while ((left < right) && arr[left] % 2 == 1)
    		{
    			left++;                         //找到一个偶数后停下
    		}
    		while ((left < right) && arr[right] % 2 == 0)
    		{
    			right--;                        //找到一个奇数后停下
    		}
    		if (left < right)
    		{
    		int	tmp = arr[left];               //然后交换这两个数的位置,实现奇数在前,偶数在后。
    			arr[left] = arr[right];
    		    arr[right]=tmp;
    		}
    
    	}
    	for (int i = 0; i <= 9; i++)
    	{
    		printf("%d ", arr[i]);       打印出排序后的数组内容。
    	}
    
    	return 0;
    }
    

    例如:第一行是输入的内容,第二行是排完序后的内容。
    在这里插入图片描述

    展开全文
  • 排序练习(奇数在前偶数在后

    千次阅读 2021-05-11 17:38:15
    给定一数组,要求奇数在前偶数在后排序(不要求大小顺序) public static void main(String[] args) { int a[]= {1,4,6,8,9,5,7,5,2,5,9,4,0,1,5,8,3,4}; int next1=0; int next2=a.length-1; while(next1...

    给定一数组,要求奇数在前,偶数在后排序(不要求大小顺序)

    public static void main(String[] args) {
    		int a[]= {1,4,6,8,9,5,7,5,2,5,9,4,0,1,5,8,3,4};
    		int next1=0;
    		int next2=a.length-1;
    		while(next1!=next2) {
    			
    			if(a[next1]%2==0&&a[next2]%2==1) {
    				jh(a,next1,next2);
    			}
    			if(a[next1]%2!=0) {
    				next1++;
    			}
    			if(a[next2]%2!=1) {
    				next2--;
    			}
    						
    			for(int i:a) {
    				System.out.print(i+" ");
    			}
    			System.out.println( );			
    		}		
    	}
    	private static void jh(int[] a, int next1, int next2) {
    		int t=a[next1];
    		a[next1]=a[next2];
    		a[next2]=t;
    		
    	}
    
    
    展开全文
  • 奇数在前 偶数在后,相对顺序保持不变1. 题目:奇数在前 偶数在后,相对顺序保持不变2. 解决思路:3. 源码 1. 题目:奇数在前 偶数在后,相对顺序保持不变 2. 解决思路: step: 1 首先找到数组中的第一个奇数放在A[0...

    1. 题目:奇数在前 偶数在后,相对顺序保持不变

    2. 解决思路:

    step: 1 首先找到数组中的第一个奇数放在A[0]
    step: 2 之后从该位置的后面一个位置开始查找奇数

    3. 源码

    #include <stdio.h>
     
    void lmf(int A[], int n)
    {
        int i, j, temp, lastOdd;
        for (i = 0; i < n; i++)   //找到数组中的第一个奇数放在A[0]
        {
            if (A[i] & 1) 
            {
                temp = A[i];
                for (j = i;j > 0; j--) 
                {
                    A[j] = A[j - 1];
                }
                A[0] = temp;                                                                       
                lastOdd = i;   //之后从lastOdd + 1位置开始查找奇数
                break;
            }
        } 
        for (i = lastOdd + 1, lastOdd = 0; i < n; i++)
        {
            if (A[i] & 1)
            {
                temp = A[i];
                for (j = i; j > lastOdd + 1; j--)   //依次向前移动
               {
                    A[j] = A[j - 1];
                }
                A[++lastOdd] = temp;
            } 
        }
    } 
    int main(void)
    {
        int A[] = {6, 4, 3, 8, 10, 11, 12, 9};
        int i, n = 8;                                                                              
        lmf(A, n);
        for (i = 0;i < n; i++)
    	{
    		printf("%d ", A[i]);
    	}
        printf("\n");
        return 0;
    }
    
    参考资料:https://blog.csdn.net/bxyill/article/details/8644301
    
    展开全文
  • #include <stdio.h> void sort(int arr[],int low,int high) { int temp; for(int i = high;i > 0;i--) { for(int j = low;j < i;j++) { if(arr[j] > arr[j+1]) { ......
  • 题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的半部分,所有的偶数位于数组的半部分,并保证奇数奇数偶数偶数之间的相对位置不变。 分析:这些都和内部...
  • //来调整该数组中数字的顺序使得数组中所有的奇数位于数组的半部分, //所有偶数位于数组的半部分。 void print_arr(const int* arr, const int sz) { assert(arr != NULL); int i = 0; for (i = 0; i < ...
  • python实现排序奇数在前偶数在后

    千次阅读 2018-05-22 21:03:00
    方式一:b=[1,2,3,4]c=[x for x in b if x%2 == 0]a=[x for x in b if x%2 != 0]c.extend(a)print(c)方式二:L = [1, 2, 3, 4, 5, 6]index = 0for _ in range(len(L)): if L[index] % 2 == 1: index += 1 else:...
  • 奇数在前偶数在后 给定一个数组,让奇数在数组的前面,偶数在数组的后面 实现步骤 1)定义一个变量left等于数组首元素下标0,变量right等于元素最后一个下标arr.length - 1 2)left从前往开始遍历数组,如果是奇数...
  • 对lst进行排序,规则为奇数在前偶数在后,总体升序 方法一:(不使用内置函数) 1.使用列表表达式 lst=[9,8,7,6,5,4,3,2,1] #先升序排列 sort的参数默认为reverse = False 升序;True :降序 lst.sort() #分别将列表...
  • 这里插入代码片 import java.util.Arrays; public class Sep15 { public static void fun(int []arr) { if (arr.length == 0) { return ; } int left = 0; int right = a...
  • 遇到奇数偶数的时候,我们如果对他进行一个排序,有利于我们观看操作,下面,小编教教大家python中怎么对奇数偶数排序。 示例: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组...
  • 数组排序奇数在前偶数在后

    千次阅读 2017-04-14 10:59:52
    一个无序整数数组,对它排序,使其半部分都为奇数有序,半部分为偶数有序。 基本想法:利用插入排序算法,对奇偶子序列分别插入排序。用两个变量把整个数组分割为三个部分,第一个部分为奇数有序子序列,第二...
  • 对于用例: 1,2,4,5,3处理结果为:1,3,5,4,2//将数组a中奇数放在前面,偶数放在后面-(void)swapArray:(int[])a{ int len = sizeof(&amp;a)/sizeof(int); if(len &lt;= 0) //数组长度为0则返回 return ;...
  • 调整数组顺序使奇数位于偶数前面C++ Solution1class Solution {public:void reOrderArray(vector &array) {for (int i = 0; i{for (int j = array.size()-1; j>i; j--){if ((array[j] & 0x01) == 1 &...
  • 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的半部分,所有的偶数位于数组的半部分,并保证奇数奇数偶数偶数之间的相对位置不变。 解题思路: 1 第一种想简单了...
  • 例如:给你一个无序数组,给这个数组排序,要求奇数前面,偶数后面,奇数偶数都是升序。 这时肯定要写cmp函数了,这里引用一个大佬的话: cmp函数的一个特性就是, 如果return false, 那么函数就会将他们...
  • 回家了解了一下,竟然5分钟就写出来了。 <!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script>...
  • 来调整该数组中数字的顺序使得数组中所有的奇数位于数组的半部分, 所有偶数位于数组的半部分 代码如下: #include<stdio.h> #include<stdlib.h> void order(int arr[],int n) { int i,j; int ...
  • 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的半部分,所有偶数位于数组的半部分。 示例: 输入:nums = [1, 9, 5, 7, 2, 4, 8, 6] 输出:[7, 1, 5, 9, 6, 4, 8, 2] 注:[3...
  • 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的半部分,所有的偶数位于数组的半部分,并保证奇数奇数偶数偶数之间的相对位置不变。 function reOrderArray(array) ...
  • 给定一个单链表,把所有的奇数节点和偶数节点分别排一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间...
  • 题目描述:一个链表,奇数位升序偶数位降序,让链表变成升序的。 比如:1 8 3 6 5 4 7 2 9,最后输出1 2 3 4 5 6 7 8 9。 分析: 这道题可以分成三步: 首先根据奇数位和偶数位拆分成两个链表。 然后对偶数链表...
  • 奇数在前偶数在后奇数按从大到小排序偶数按从小到大排序。 输入格式 输入一行,包含1010个整数,彼此以一个空格分开,每个整数的范围是大于等于00,小于等于100100。 输出格式 按照要求排序...
  • public static void SortByOddAndEven(int []arr) { for (int i = 0; i < arr.Length; i++) { for (int j = arr.Length - 1; j >= i; j--) ...
  • 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的半部分,所有的偶数位于位于数组的半部分,并保证奇数奇数偶数偶数之间的相对位置不变。 思路一:从前向找,找到...
  • 题目描述:一个链表,特点是奇数位升序偶数位降序,使得链表变成升序的。分析代码节点类:main方法:初始化方法:按照奇偶位拆分成两个链表:反转链表:合并两个有序链表(非递归):合并两个有序链表(递归): 分析 这道题...
  • 主要介绍了python如果快速判断数字奇数偶数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • List1 = [32,4,7,13,9,56,91,3] m = [x for x in List1 if x%2 == 1] n = [x for x... 第六行将偶数列转为字符串(不妨试一下没有这一步的输出效果) 第七行将偶数列加到奇数列末尾。 第八行将合并的数列转为字符串。
  • 让一个数组中奇数在前偶数在后

    千次阅读 2018-10-31 21:36:28
    不要求奇数偶数排序 思路: 设定两个变量,从数组两端开始往里缩减,要求左边都为奇数,那么left为奇数就++判断下一个,如果是偶数就停止,右边的思路也一样,等到两个whlie循环结束了那么把两个不符合循环条件的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,969
精华内容 20,387
关键字:

奇数在前偶数在后排序