排序演算法:幾種常見的排序演算法的C語言程式碼
int i, j;
if(left >= right) return;
j = left;
for(i=left+1; i <= right; i++)
if(*(ptr+i) < *(ptr+left))
swap(ptr+(++j), ptr+i);
swap(ptr+left, ptr+j);
quick_sort(ptr, left, j-1);
quick_sort(ptr, j+1, right);
}
void swap(int *ptr1, int *ptr2) {
int w;
w = *ptr1;
*ptr1 = *ptr2;
*ptr2 = w;
}
相關推薦
自己整理的幾種常見排序演算法,及時間複雜度空間複雜度。c++程式設計
/***************************************************** copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name: Author:fhb
排序演算法:幾種常見的排序演算法的C語言程式碼
void quick_sort(int *ptr, int left, int right) { int i, j; if(left >= right) return; j = left; for(i=left+1; i <= right; i++) if(*(ptr+i)
資料結構(一):幾種常見排序演算法比較
排序 0. 常見排序演算法效率比較 時間複雜度及穩定性比較 排序方法 平均方法 最優複雜度 最壞複雜度 輔助空間 穩定性 氣泡排序 O(
幾種常見排序演算法及其效率
介紹了幾種交換排序的演算法 1。氣泡排序(Bubble Sort)是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列
幾種常見排序演算法java實現
public class sort { public static void main(String[] args) { int[] a= {10,1,35,14,9,12,11}; int c=(int)Math.floor(Math.random()*7);
排序演算法--幾種插入排序
插入排序總體上說也是簡單排序,除去Shell排序的話,其他的插入排序演算法時間複雜度基本上是O(n ^ 2)的,除非有特殊的情況. 首先說說直接插入排序: 描述: 插入排序的思想大概就像是打牌是摸牌的過程(很多書諸如<<演算法導論>&
【知了堂學習筆記】java 編寫幾種常見排序算法
第一個 public 調用 ati print 所有 eth string quick 排序的分類: 一.交換排序 所謂交換,就是根據序列中兩個記錄鍵值的比較結果來對換這兩個記錄在序列中的位置,交換排序的特點是:將鍵值較大的記錄向序列的尾部移動,鍵值較小的記錄向序列的前部
幾種常見排序方法
冒泡 function bubble($data){ $size = count($data); for($i=0;$i<$size;$i++){ for($j=$i+1;$j<$size;$j++){ if($data
Java實現幾種常見排序方法
package test.sort; import java.util.Random; //Java實現的排序類 publicclass NumberSort { //私有構造方法,禁止例項化 private NumberSort() { super();
Java實現幾種常見排序方法(下) .
插入排序的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃描,找到相應位置並插入。其具體步驟參見程式碼及註釋。 [java] view plaincopyprint? /** * 插入排序<br/> * <ul>
java 實現幾種常見排序方法
日常操作中常見的排序方法有:氣泡排序、快速排序、選擇排序、插入排序、希爾排序,甚至還有基數排序、雞尾酒排序、桶排序、鴿巢排序、歸併排序等。 氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列
幾種常見加密演算法的比較
1.DES加密演算法 DES加密演算法是一種分組密碼,以64位為分組對資料加密,它的金鑰長度是56位,加密解密用同一演算法。DES加密演算法是對金鑰進行保密,而公開演算法,包括加密和解密演算法。這樣,只有掌握了和傳送方相同金鑰的人才能解讀由DES加密演算法加密的密文資料。因
快速排序的幾種常見實現及其效能對比
快速排序的基本思想 快速排序演算法是一種不穩定的排序演算法。其時間複雜度為O(nlogn),最壞複雜度為O(n^2);快排的平均空間複雜度為O(logn),關於空間界的論斷來自於《程式設計珠璣第2版》第113頁。但是其最壞空間複雜度為O(n)。
SLAM演算法-----幾種2D-slam演算法比較
本文簡單比較了這幾種2D-Slam演算法HectorSLAM ,Gmapping, KartoSLAM, CoreSLAM, LagoSLAM。 詳細參見論文: An evaluation of 2D SLAM techniques available in robo
{GIS演算法}地圖四色著圖/C語言程式碼/演算法
四色原理是什麼?網上原理有很多,不懂可以自己搜。 把需要填圖的區域看作泰森多邊形,每個區域的頂點儲存顏色,點之間關係就是TIN三角形,區域和區域的關係就轉化為點和點之間的關係。 把所有點儲存在鄰接表裡,著色採用回溯法,原理就是圖的遍歷。 不懂可以複製下來自
常見的幾種內排序演算法以及實現(C語言)
所有未排序的陣列是經過檢查合法的 主要的內排序包括冒泡、插入、希爾、堆排序、歸併、快速、桶排序等 其C語言實現的原始檔下載地址:http://download.csdn.net/detail/mcu_tian/9530227 氣泡排序 氣泡排序應該是排序中最簡單的演算法了
java中幾種常見的排序演算法實現
在Java中得資料結構比較 | 資料機構 | 優點| 缺點 | |陣列 | 插入快,在直到下標得情況下可快速地存取| 查詢慢,刪除慢,大小固定 | |有序陣列 | 比無序得陣列查詢快|刪除和插入慢,大小固定 | |棧 | 提供後進先出方式的存取| 存取其他項很
幾種常見的排序演算法及它們之間的比較
1.穩定性比較 插入排序、氣泡排序、二叉樹排序、二路歸併排序及其他線形排序是穩定的 選擇排序、希爾排序、快速排序、堆排序是不穩定的 2.時間複雜性比較 插入排序、氣泡排序、選擇排序的時間複雜性為O(n2) 其它非線形排序的時間複雜性為O(nlog2n) 線形排序的
用php實現幾種常見的排序演算法
一、氣泡排序 氣泡排序理解起來是最簡單,但是時間複雜度(O(n^2))也是最大的之一,實現程式碼如下: function bubbleSort($arr) { $len = count(
C語言中冒泡法、選擇法、插入法三種常見排序演算法分析
一、冒泡法(起泡法) 演算法要求:用起泡法對10個整數按升序排序。 演算法分析:如果有n個數,則要進行n-1趟比較。在第1趟比較中要進行n-1次相鄰元素的兩兩比較,在第j趟比較中要進行n-j次兩兩比較。比較的順序從前往後,經過一趟比較後,將最值沉底(換到最後一個元