C++自帶快速排序的使用
需要的標頭檔案:
#include<algorithm>
程式碼很簡單,就一行:
sort(a+1,a+n+1,cmp);
a表示要排序的陣列,含n個元素,而cmp是判定條件。
比如說:
bool cmp(int i,int j)
{
return i<j;
}
就是從小到大排序,反之則return i>j;
當然這只是基於a是int型別的陣列下的cmp函式,假如想捆綁多個數組(比如說下標label[]),需要用到結構體。
例如:
#include<algorithm> struct newdata { int w,label; }; newdata a[10]; bool cmp(newdata i,newdata j) //注意型別變了 { return i.w<j.w; } int main() { sort(a+1,a+n+1,cmp); }
這樣子排序的關鍵字是a[].w,但是交換時還是會把整個結構體交換過去。
可以自己嘗試一下。
相關推薦
C++自帶快速排序的使用
需要的標頭檔案: #include<algorithm> 程式碼很簡單,就一行: sort(a+1,a+n+1,cmp); a表示要排序的陣列,含n個元素,而cmp是判定條件。 比如說: bool cmp(int i,int j) { retu
C語言和C++自帶排序比較(qsort和sort)
我們先來看看C語言的,qsort函式,下面是具體的實現。 #include <stdio.h> #include <stdlib.h> /*const 讓它不能被修改,以只讀型別被用 如果函式引數是任意型別指標,就用void* */ /*qsor
C語言中庫函式自帶的排序函式qsort
之前一直不知道C語言還有預設的排序函式,而且還是快速排序的函式,當時覺得自己C語言白學了,瞭解之後我覺得應該把這個函式的用法和用例展示出來,供大家參考。 #include <stdlib.h> void qsort( void *buf, size_t num,
C++自帶sort函式對vector容器元素進行排序
1.包含標頭檔案 #include<algorithm>,然後using namespace std; 2.假如你定義的vector變數為vector<Type> num,則如下
C語言實現快速排序法(分治法)
下一個 enter hang partition 等於 就是 tor log markdown title: 快速排序法(quick sort) tags: 分治法(divide and conquer method) grammar_cjkRuby: true ---
C-單鏈表-快速排序,冒泡排序
快速排序 冒泡排序 單鏈表 struct ST_QUEUE { int data; struct ST_QUEUE* pNext; // 指針域 }; typedef struct ST_QUEUE Queue; void swapNode(Queue *p1, Queue *
(排序演算法)linux c語言實現快速排序(氣泡排序的改進版)
快速排序演算法是對氣泡排序演算法的一種改進,氣泡排序是對單個元素的升降,快速排序是對所有元素的升降,不過這個升降是取了某一個標準的前提下,在本文程式碼中,就以a[i],其實就是以最左邊的元素為參考,比較交換之後,將這個參考元素放到分界的地方,即i的位置。 程式碼如下,裡面有比較詳細的
C語言利用快速排序(QuickSort)實現對陣列的排序
快速排序是一種交換排序,是對氣泡排序的改進 利用氣泡排序的特性,對目標進行分段冒泡 #include "stdio.h" int a[6];//定義一個數組,長度為6,實際存放5個元素, /** * 快速排序函式 * @param left 最左邊的指標 * @param
C語言實現快速排序(遞迴)
#include<stdio.h> void Split(int left,int a[],int right); int Quicksort(int left,int a[],int right); int main() { int N; scanf("
(排序演算法)linux c語言實現快速排序
/*************************************************** ##filename : arrinsert.c ##author : GYZ ##
一種用C++自帶的類生成服從正態分佈的隨機數。
今天寫關於深度學習的程式碼時,裡面要用服從標準正態分佈的隨機數初始化權值,就是matlab裡面那個randn函式,網上找了很多方法,最後發現C++本身就有自帶的方法生成服從正態分佈的隨機數序列。下面給出C++程式碼: C++程式碼: #include &
PAT (Basic Level) Practice (中文) 1015 德才論 (25 分) (C++)(快速排序思想)
1015 德才論 (25 分) 宋代史學家司馬光在《資治通鑑》中有一段著名的“德才論”:“是故才德全盡謂之聖人,才德兼亡謂之愚人,德勝才謂之君子,才勝德謂之小人。凡取人之術,苟不得聖人,君子而與之,與其得小人,不若得愚人。” 現給出一批考生的德才分數,請根據司馬光的理論給出錄取排
C++自帶string類的常用方法
#include<iostream>#include<string>using namespace std;int main(){ string str1 = "hello"; string* str2 = new string("hell
用C語言解決快速排序問題
快速排序分為三個部分:1,分解即分為三段 2,遞迴求解:通過遞迴進行排序 3,合併:將排好序的區間進行合併 遞迴進行排序 即:void QuickSort(){ if(p<r){ int q = Partition(Type ) Q
MemCache快取和C#自帶的Cache快取
1、MemCache //初始化 static SockIOPool _pool; // 建立Memcached private static MemcachedClient Create(string poolName) { CreateServer("abc11666", "12
C++ 單鏈錶快速排序
#include <string> #include <stdio.h> using namespace std; typedef struct Node { int data; Node * next; }Node; void swap(N
c語言實現快速排序
快速排序 時間複雜度:最好時間O(nlogn) 最壞時間O(n^2) 穩定性:不穩定 快速排序不是一種穩定的排序演算法,也就是說,多個相同的值的相對位置也許會在演算法結束時產生變動 基本思想:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資
GIS演算法(二)運用C#自帶的函式繪製五角星和多邊形(C#)
前言: 當我們敲下第一行程式碼向計算機世界說一句—–Hello World 我們就打開了一扇通往計算機世界的大門。 計算機的世界總是充滿著未知和挑戰, 當我們的程式碼第一次出現在漆黑的控制檯; 當我們第一次實現和計算機的互動; 當我們第一次完成自己的
C語言實現快速排序(完整版)DVE-C++編譯通過
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAXLINES 5000 //進行排序的最大文字行 char *lineptr[MAXLINES]; //指向文字行的指標陣列 i
排序演算法c語言描述-快速排序隨機化
今天在做資料結構排序實驗的時候,使用的快速排序。按理,我印象中快排是很高效的,不過,這次400w的資料,排了2659秒,有點意想不到,讓我一度懷疑了演算法是否寫錯了。 不過,認真分析,認真想想後, 也就釋然了。 快排其實就是冒泡的升級版。 每次遞迴,把當前序列分成兩部分,