排序演算法c c

2021-07-27 21:34:39 字數 2735 閱讀 7640

#include

void bubble_sort1(int

array,int arraysize)}}

}int main(void)

; bubble_sort1(array,5);/*排序好後為:1 2 3 4 5*/

int i;

for(i=0;i<5;i++)printf("%d",array[i]);

puts("");

}

以前做排序為了省事直接在建立在*.cpp裡,今天遇到問題了。

這段**在g++下執行正確,輸出為12345

但在gcc下執行錯誤,輸出為00235。

應該錯在這句話:array[j]^=array[j+1]^=array[j]^=array[j+1];

疑問:不知兩種編譯下,是異或運算有區別?還是gcc有特殊的序列點? 不了解其中本質。

乙個數(同乙個位址)自己與自己異或3次會是0,但下角標是j和j+1,應該不會涉及到這種情況。

int b[6]= ;/*第乙個數0,是哨兵*/

insertionsort2(b,6);

for(int i=1; i<6; i++)printf("%d ",b[i]);

puts("");

}

#include

void halfsort(int

array,int arraysize)

//找到插入點後,為該值騰出地方,將high+1到i的所有元素後移一位

for(j=i-1;j>high;j--)array[j+1]=array[j];

array[high+1]=temp;

}}int main()

,i; halfsort(array,5);

for(i=0; i<5; i++)printf("%d ",array[i]);

}

很久以前從網上扒下來的

#include

#include

void shellinsert(int

array,int n,int dk)///根據當前增量dk進行插入排序

}void shellsort(int

array,int n,int t)///希爾排序

}int main()

乙個迴圈…但是變數i跑的太折騰了…

#include

void gnomesort(int

array,int arraysize)

}}int main()

; gnomesort(array,5);/*排序後結果為1 2 3 4 5*/

for(int i=0; i<5; i++)printf("%d ",array[i]);

}

#include void quicksort(int

array, int

left, int

right)

array[i] = temp;

quicksort(array, left, i - 1);

quicksort(array, j + 1, right);

}}int main()

,i; quicksort(array, 0, 4);

for (i = 0; i < 5; i++)printf("%d ",array[i]);

}

計數排序是乙個非基於比較的排序演算法

#include 

#include

#define maxnum 1000//排序的數字範圍是0-1000

void countingsort(int a, int n, int k)

int main()

,i; countingsort(a, 5, maxnum);

for (i = 0; i < 5; i++)printf("%d ", a[i]);

}

推排序演算法C C

在堆排序演算法中,我們使用的是最大堆。下面的 是給定一組數,構造乙個最大堆。left heap,location 和right heap,location 分別返回陣列heap中location的左右孩子的索引。max heapify heap,i 是確保heap陣列的i的左右孩子都滿足最大堆化。b...

C C 演算法 快速排序

氣泡排序的執行效率太低,因為每次比較相鄰的兩個數,所以時間複雜度為o n 花費的時間太長,所以為了更加的節省時間,提高程式的執行速率,我們可以採用快速排序。對於乙個數集,先把第乙個數當作基準數,然後分別從最右端和最左端向另一方向進行搜尋,以從小到大的順序為例 從右向左搜尋的,遇到比基準數小的與從左向...

C C 演算法 基礎排序

選擇排序 selectionsort 插入排序 insertsort 氣泡排序類似於汽水的氣泡一樣,從杯子底部一直公升到杯子的頂部,在上公升過程中氣泡會逐漸變大,這一過程類似於讓一組資料從小到大排列。從第乙個元素開始,與當前元素的相鄰元素進行比較,如果兩個元素之間逆序則交換,保證在比較完成後一組資料...