幾種常見的排序C實現

2021-06-18 01:14:37 字數 1303 閱讀 3564

#include

#include

//氣泡排序從小到大 第一趟得到最大的存到陣列的最後,第二趟得到陣列的第二大的,存到陣列的倒數第二位。依次。。

void bubble_sort(int *p)}}

//列印輸出

for(int i=0;i int length=6;

//取增量

int step=length/2;

while(step>=1)

p[j+step]=temp;

}   step=step/2; }}

//選擇排序(選擇出最小的假定第乙個為最小的 然後判斷 是否交換)

void selection_sort(int *p)

}if(min!=i)

}//列印輸出

for(int i=0;i=val)

--high;

a[low]=a[high];

while(lowint leftend=middle-1;

//右指標頭

int  rightstart=middle;

//臨時陣列的下標

int tempindex=left;

//陣列合併後的長度

int templength=right-left+1;

//先迴圈兩個區間段都沒有結束的情況

while((left<=leftend)&&(rightstart<=right))else

}//判斷左邊序列是否結束

while(left<=leftend)

//判斷右邊序列是否結束

while(rightstart<=right)

//交換資料

for(int i=0; i p[right]=temp[right];

right--;}}

//歸併排序 ---陣列的劃分

void  merge_sort(int *p ,int *temp,int left,int right)

}//插入排序

void insert_sort(int *a)else

}a[j + 1] = temp;}}

int main(int argc, char* argv)

;//bubble_sort(b);

//selection_sort(b);

//quick_sort(b,0,5);

shell(b);

//insert_sort(b);

for(int i=0;i<6;i++)

scanf("%a",&a);

return 0;

}

幾種常見的排序演算法c 實現

一 選擇排序 演算法思想 對於有n個元素的陣列,一共有n躺排序,每趟排序要保證前i ii項元素已經排好序,對於第i ii趟排序,從第i ii個元素開始遍歷陣列,將當前遍歷元素中最小的值與第i個元素交換。具體 實現如下 include include include using namespace s...

c 常見的幾種排序

找到最小的元素,並記錄下它的下標,然後和第i個元素進行交換,每次進行乙個迴圈便找到乙個最小值。比如在乙個長度為n的無序陣列中,在第一趟遍歷n個資料,找出其中最小的數值與第乙個元素交換,第二趟遍歷剩下的n 1個資料,找出其中最小的數值與第二個元素交換 第n 1趟遍歷剩下的2個資料,找出其中最小的數值與...

常見的幾種排序方法實現

常見的幾種排序方法 氣泡排序 選擇排序 插入排序 選擇排序 1 氣泡排序 每次比較相鄰的像個數,值小的往前冒泡,時間複雜度o n2 2 選擇排序 每次選擇最小的乙個數放在前面,時間複雜度o n2 3 插入排序 每個數插入前面的有序數列中,時間複雜度o n2 4 選擇排序 利用遞迴方法,不斷將小於某個...