?
目錄
冒泡排序
冒泡排序部分?
輸出函數部分
主函數部分?
總代碼
?控制臺輸出顯示
總代碼解釋
?冒泡排序優化
?冒泡排序
?主函數
總代碼?
代碼優化解釋
qsort 排序
qsort 的介紹
?使用qsort排序整型數據
使用qsort排序結構數據
?
冒泡排序
首先,我先介紹我的冒泡排序代碼,分為三個部分:
1.冒泡排序
2.輸出
3.主函數
冒泡排序部分?
void Bubble_sort(int* a, int sz)
{int i = 0;for (i = 0; i < (sz - 1); i++){int j = 0;for (j = 0; j < ((sz - 1) - i); j++){if (a[j] > a[j + 1]){int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}
}
?
輸出函數部分
void Print(int* a, int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}printf("\n");
}
?
主函數部分?
int main()
{int a[10] = { 8,9,6,1,4,66,7,3,5,2 };int sz = sizeof(a) / sizeof(a[0]);//冒泡排序Bubble_sort(a, sz);//打印數組Print(a, sz);return 0;
}
?
總代碼
void Bubble_sort(int* a, int sz)
{int i = 0;for (i = 0; i < (sz - 1); i++){int j = 0;for (j = 0; j < ((sz - 1) - i); j++){if (a[j] > a[j + 1]){int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}
}void Print(int* a, int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}printf("\n");
}int main()
{int a[10] = { 8,9,6,1,4,66,7,3,5,2 };int sz = sizeof(a) / sizeof(a[0]);//冒泡排序Bubble_sort(a, sz);//打印數組Print(a, sz);return 0;
}
?控制臺輸出顯示
總代碼解釋
?
?冒泡排序優化
優化部分:
1.在冒泡排序中,定義了一個flag來控制數組的有序(升序 or 降序);
2.輸出部分放在主函數中.?
?冒泡排序
void Bubble_sort(int* a, int sz)
{int i = 0, flag = 1;for (i = 0; i < (sz - 1); i++){int j = 0;for (j = 0; j < ((sz - 1) - i); j++){if (a[j] > a[j + 1]){flag = 0;int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}if (flag == 1){break;}}
}
?
?主函數
int main()
{int a[10] = { 8,9,6,1,4,66,7,3,5,2 };int sz = sizeof(a) / sizeof(a[0]);//冒泡排序Bubble_sort(a, sz);//輸出int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}printf("\n");return 0;
}
?
總代碼?
代碼優化解釋
?
qsort 排序
qsort 的介紹
?
?使用qsort排序整型數據
int int_cmp(const void* p1,const void* p2)
{return (*(int*)p1 - *(int*)p2);
}int main()
{int a[10] = { 8,9,6,1,4,66,7,3,5,2 };int sz = sizeof(a) / sizeof(a[0]);qsort(a, sz, sizeof(int), int_cmp);int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}printf("\n");return 0;
}
代碼解釋?
在qsort的第四個參數?int_cmp?中
(*(int*)p1)? 表示的是把p1強制類型轉換成int,再解引用
控制臺顯示輸出如👆上面冒泡結果的相同
使用qsort排序結構數據
在這篇文章中 (鏈接)-->一.學生成績管理系統(簡單) -->按學生的平均分進行從高到低排序?
能找到并詳細講解
?***********************************************************分割線*****************************************************************************
完結!!!
感謝瀏覽和閱讀。
等等等等一下,分享最近喜歡的一句話:“風停在窗邊囑咐我,要熱愛這個世界”。
我是白子寰,如果你喜歡我的作品,不妨你留個點贊+關注讓我知道你曾來過。
你的點贊和關注是我持續寫作的動力!!!?
好了劃走把。
?