两个List,第二个List根据第一个List排序

/// <summary>
        /// 协同排序
        /// </summary>
        /// <param name="sod"></param>
        /// <param name="dis"></param>
        /// <returns></returns>
        private List<int> oids(List<int> sod, List<double> dis)
        {

            for (int tmpi = 0; tmpi < dis.Count; tmpi++)
            {
                //找到最小的id
                int lid = tmpi;
                for (int tmpj = tmpi + 1; tmpj < dis.Count; tmpj++)
                {
                    if (dis[lid] > dis[tmpj])
                    {
                        lid = tmpj;
                    }
                }
                //互换最小的与当前
                double ti = dis[lid];
                int tname = sod[lid];
                dis[lid] = dis[tmpi];
                dis[tmpi] = ti;
                sod[lid] = sod[tmpi];
                sod[tmpi] = tname;
            }

            return sod;
        }
时间: 2024-08-24 10:53:46

两个List,第二个List根据第一个List排序的相关文章

【C练习】两个已经从小到大的数组合并成为一个从小到大排序的数组

两个已经从小到大的数组合并成为一个从小到大排序的数组 1 #include<stdio.h> 2 int main() 3 { 4 int m,n,i,j,k,tem=0; 5 printf("这两个数组分别有多少个数:\n"); 6 scanf("%d%d",&m,&n); 7 int a[m],b[n],c[m+n]; 8 printf("从小到大输入%d个数:\n",m); 9 for(i=0;i<m;i+

子序列问题两例,第二例也用到了从后往前遍历思想

引言 子序列和子字符串或者连续子集的不同之处在于,子序列不需要是原序列上连续的值. 对于子序列的题目,大多数需要用到DP的思想,因此,状态转移是关键. 这里摘录两个常见子序列问题及其解法. 例题1, 最长公共子序列 我们知道最长公共子串的求法,先温习一下,它的求法也是使用DP思想,对于 字符串s1 和字符串s2,令 m[i][j] 表示 s1上以s1[i]结尾的子串和s2上s2[j]结尾的子串的最长公共子串长度,因为公共子串必须是连续的,因此状态转移方程:m[i, j] = (s1[i] ==

dotNetFx40_Client_x86_x64和dotNetFx40_Full_x86_x64这两个有什么区别?两个都要安装还是安装其中一个?

这个是NET Framework 4.0的安装文件它是支持生成和运行下一代应用程序和 XML Web Services 的内部 Windows 组件,很多基于此架构的程序需要它的支持才能够运行.简单的说就是有许多程序的运行都要基于NET Framework 4.0,所以建议还是安装上吧.至于这两个的区别,第一个是一个安装引导文件,就是点安装之后要在线下载文件并同时安装:第二个则包括了程序安装所需要的所有文件,不需要在线下载了. PS:由于在线下载是在微软的网站下载,所以速度会比较慢,所以建议安装

第二章-第二题(每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令。比较项目的新旧版本的差别。)--by侯伟婷

第二题:每人自己建立一个HelloWorld项目,练习使用git的add/commit/push/pull/fetch/clone等基本命令.比较项目的新旧版本的差别. 下面我将自己的练习结果和个人感受记录如下: 第一步:安装Git,设置自己的账号和邮箱,参见Git教程-廖雪峰的官方网站,网址如下参考资料1所示. 第二步:在Git中新建repository,名叫HelloWorld,并进行初始化,如图所示. 第三步:在HelloWorld版本库中新建了helloWorld.txt文件,用以练习G

将两个数组A和B合并为一个有序的C数组

1 # include<iostream> 2 # include<cstdio> 3 # include<algorithm> 4 using namespace std; 5 void Sort(int a[],int b[],int c[],int n,int m) 6 { 7 int A=0, B=0, C=0; 8 while(A<n && B<m) 9 { 10 if(a[A] <= b[B]) 11 c[C++] = a[

读取两文件,不同的内容存入另一个文件中

<?php /** * 从两个.csv 文件中读出数据 * 比较这两个文件不同的数据,并存入.csv 文件中 */ class Readfiledata { private function __construct() { } /** * 读文件并获取数据 */ private static function getdata($file) { $handle = fopen ( $file, 'r' ); $orderform = array (); $i=0; while ( false !=

php将两个或多个数组合并为一个数组函数

array_merge() 函数把两个或多个数组合并为一个数组. 例子 1 <?php $a1=array("a"=>"Horse","b"=>"Dog"); $a2=array("c"=>"Cow","b"=>"Cat"); print_r(array_merge($a1,$a2)); ?> 输出: Array

php将两个数组相同的key合并到一个数组

php将两个数组相同的key合并到一个数组 $arr = array( array( 'id' => 1, 'user_name'=>'test1' ), array( 'id' => 2, 'user_name'=>'test2' ), array( 'id' => 3, 'user_name'=>'test3' ) ); $arr2 = array( array( 'id' => 1, 'shop_name'=>'shop1' ), array( 'id

Python之路【第二十四篇】Python算法排序一

什么是算法 1.什么是算法 算法(algorithm):就是定义良好的计算过程,他去一个或一组的值为输入,并产生出一个或一组至作为输出.简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果. 2.算法的意义 假设计算机无限快,并且计算机存储容器是免费的,我们还需要各种乱七八糟的算法吗?如果计算机无限快,那么对于某一个问题来说,任何一个都可以解决他的正确方法都可以的! 当然,计算机可以做到很快,但是不能做到无限快,存储也可以很便宜但是不能做到免费. 那么问题就来了效率:解决同一个问题的各