1. 程式人生 > >sort 進行下標排序

sort 進行下標排序

在多個數據關聯,需要進行排序又不想寫結構體怎麼辦。

一種很好的方法就是進行陣列的下表排序。這裡給出直接用庫函式sort的下標排序。

/**********************
用sort對下標進行排序
*********************/
#include <iostream>
#include <algorithm>
using namespace std;
int a[8] = {0,8,65,1,4,1,3,5};	
int cmp(int x,int y)					//排序是依據a陣列進行的
{
	return a[x]>a[y];
}
int main()
{
	int id[8];
	for(int i = 0;i < 8;i++) id[i] = i;	//下標初始化
	sort(id,id+8,cmp);					//要排序的主體是下標
	for(int i = 0;i < 8;i++)
	{
		cout<<a[id[i]];					//這樣輸出就是結果啦
	}
	return 0;
}

這樣排序工作就做完了,不用太麻煩的寫結構體,pair了。

相關推薦

sort 進行排序

在多個數據關聯,需要進行排序又不想寫結構體怎麼辦。 一種很好的方法就是進行陣列的下表排序。這裡給出直接用庫函式sort的下標排序。 /********************** 用sort對下標進行

(C++)用陣列形式對一維陣列進行排序

用另一個數組下標的形式記錄一個一維陣列中下標所對應的元素出現在個數,並對此一維陣列進行排序。 例如:一個一維陣列中的元素為:a[4] = { 2,3,2,5 };此陣列為一個長度為4的陣列,另一個空陣列x[6]={ 0 };x[0] = 0,因為使用下標的形式記錄a陣列中的元素,此時x[]的

利用陣列,將n以內的數進行排序

巧用陣列下標 陣列的下標是一個隱含的很有用的陣列,特別是在統計一些數字,或者判斷一些整型數是否出現過的時候。例如,給你一串字母,讓你判斷這些字母出現的次數時,我們就可以把這些字母作為下標,在遍歷的時候,如果字母a遍歷到,則arr[a]就可以加1了,即  arr[a]++;

java 通過陣列進行排序

package com.clean.base; import java.util.Scanner; public cl

for循環裏面不要進行remove操作,for循環裏remove元素後,list的會減小,導致遍歷不完全

body 代碼 2.0 class equals tostring arraylist 執行 align p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px "Helvetica

JAVA 利用Arraylist.sort()進行排序的實現。(comparable介面的實現)

1.什麼是Comparable介面 此介面強行對實現它的每個類的物件進行整體排序。此排序被稱為該類的自然排序 ,類的 compareTo 方法被稱為它的自然比較方法 。實現此介面的物件列表(和陣列)可以通過 Collections.sort (和 Arrays.sort )進行自動排序。實現此介面的

資料結構之排序篇——選擇排序 //交換第i與最小,只交換一次

首先在陣列的所有元素中找到一個最小的元素, 將該元素與陣列的第一個元素進行交換, 這樣交換之後,陣列的第一個元素就變成了陣列元素中的最小值,     再在除第一個元素外的其它陣列元素中,尋找最小的陣列元素,     將這個第二小的陣列元素與陣列

vector容器的大坑:對vector容器使用索引進行訪問的時候程式崩潰!!!

程式中首次對一個vector物件進行下標索引賦值運算,即使該vector已經在建構函式中完成了初始化,但是使用下標訪問它,對它賦值仍然導致程式崩潰,提示訪問了未初始化的物件或提示指標越界! 實際上,首次對空的vector進行增加元素,必須使用push_back

java中用正則表示式獲取一個指定的子字元在字串中出現的指定次數的索引,並且進行字串分割

在開發中遇到這樣的一個報文: 00000123000003RQ0 ################ 000003 <tellerLvl0>0</><brc>3004</><fPIflag>0</><

使用sort對list進行倒序排序

sorted有4個引數sorted(iterable,cmp,key,reverse)iterable是需要排序的變數,cmp 和C語言裡面的差不多,key是排序的關鍵字,reverse是是否倒序(True/False,注意區分大小寫)能夠正確執行的排序如下:>>

陣列排序,返回陣列值在原陣列中的(序號)

  功能:對輸入的陣列進行排序,返回的是,從小到大陣列對應於原陣列的下標(序號) 。比如 1 7 3 2 9  返回:0 3 2 1 4 思想:在函式中動態開闢一個數組,用於儲存下標。初始化的時候為0-(n-1)。陣列值在排序的過程中,下標值也跟著排序。最後返回指向下標陣

p166 搬寢室 注意list的是從1開始的,(1)在sort的時候(2)在寫狀態轉移公式的時候

我跟書上寫的不一樣,但是我的可以過,好理解。。#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include &l

javascript中直接用sort進行排序的陷阱測試

var values = [0, 1, 5, 3, 10]; values.sort(); console.log(values); // [ 0, 1, 10, 3, 5 ] function c

[Python] 專題五.列表基礎知識 二維list排序、獲取和處理txt文字例項

        通常測試人員或公司實習人員需要處理一些txt文字內容,而此時使用Python是比較方便的語言。它不光在爬取網上資料上方便,還在NLP自然語言處理方面擁有獨到的優勢。這篇文章主要簡單的介紹使用Python處理txt漢字文字、二維列表排序和獲取list下標。希望

List使用sort進行排序

程式碼: roadBeanArrayList.sort(new Comparator<RoadBean>() {

51Nod 1272 最大距離 (排序,維護)

首先先對結構體排序,從小到大 然後只需要維護一個下標。每次更新下標的最小值 因為後面的數肯定都是大於前面的 所以只要看下標滿足一個增長的即可 #include<iostream> #i

陣列排序,並返回排序後的陣列對應原陣列的(c語言)

#include<stdio.h> #include<stdlib.h> void sort(int* a, int length, int* b) {     int i,j, t1, t;     for(j=0; j<length; j+

刷題三:給定一個排序陣列和目標值,求

給定一個排序陣列nums(無重複元素)與目標值target,如果target在nums裡出現,則返回target所在下標,如果target在nums裡未出現,則返回target應該插入位置的陣列下標,使

陣列排序,返回陣列值在原陣列中的(序號) .

功能:對輸入的陣列進行排序,返回的是,從小到大陣列對應於原陣列的下標(序號) 。比如 1 7 3 2 9  返回:0 3 2 1 4 思想:在函式中動態開闢一個數組,用於儲存下標。初始化的時候為0-(n-1)。陣列值在排序的過程中,下標值也跟著排序。最後返回指向下標陣列的

C語言:將ss所指字符串中所有為奇數位置的字母轉換為大寫-將該字符串中的所有字符按ASCII碼值升序排序後輸出。-將a所指的4*3矩陣第k行的元素與第0行元素交換。

[] sorting 一個 最後一個元素 lib include ascii碼 mes %s //函數fun:將ss所指字符串中所有下標為奇數位置的字母轉換為大寫,若不是字母,則不轉換。 1 #include<conio.h> 2 #include&