亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C語言的冒泡排序和快速排序算法使用實例

2020-05-23 14:15:48
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了C語言的冒泡排序和快速排序算法使用實例,示例題目也是ACM練習當中的基礎習題,需要的朋友可以參考下

冒泡排序法

題目描述:

用一維數組存儲學號和成績,然后,按成績排序輸出。

輸入:

輸入第一行包括一個整數N(1<=N<=100),代表學生的個數。

接下來的N行每行包括兩個整數p和q,分別代表每個學生的學號和成績。

輸出:

按照學生的成績從小到大進行排序,并將排序后的學生信息打印出來。

如果學生的成績相同,則按照學號的大小進行從小到大排序。

樣例輸入:

3

1 90

2 87

3 92

樣例輸出:

2 87

1 90

3 92

代碼:

 

 
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3.  
  4. struct student  
  5. {  
  6. int number;  
  7. int score;  
  8. };  
  9.  
  10. int main()  
  11. {  
  12. struct student students[101];  
  13. int n, i, j;  
  14. struct student temp;  
  15.  
  16. while(scanf("%d",&n) != EOF)  
  17. {  
  18. //接收數據  
  19. for(i = 0; i < n; i++)  
  20. {  
  21. scanf("%d%d",&students[i].number,&students[i].score);  
  22. }  
  23.  
  24. //冒泡排序  
  25. for(i = 0; i < n - 1; i ++)  
  26. {  
  27. for(j = 0; j < n - i - 1; j ++)  
  28. {  
  29. if(students[j].score > students[j + 1].score)  
  30. {  
  31. temp = students[j];  
  32. students[j] = students[j + 1];  
  33. students[j + 1] = temp;  
  34. }else if(students[j].score == students[j + 1].score)  
  35. {  
  36. if(students[j].number > students[j + 1].number)  
  37. {  
  38. temp = students[j];  
  39. students[j] = students[j + 1];  
  40. students[j + 1] = temp;  
  41. }  
  42. }  
  43. }  
  44. }  
  45.  
  46. //輸出排序結果  
  47. for(i = 0; i < n; i ++)  
  48. {  
  49. printf("%d %d/n",students[i].number,students[i].score);  
  50. }  
  51. }  
  52.  
  53. return 0;  
  54. }  

快速排序法

題目描述:

有N個學生的數據,將學生數據按成績高低排序,如果成績相同則按姓名字符的字母序排序,如果姓名的字母序也相同則按照學生的年齡排序,并輸出N個學生排序后的信息。

輸入:

測試數據有多組,每組輸入第一行有一個整數N(N<=1000),接下來的N行包括N個學生的數據。

每個學生的數據包括姓名(長度不超過100的字符串)、年齡(整形數)、成績(小于等于100的正數)。

輸出:

將學生信息按成績進行排序,成績相同的則按姓名的字母序進行排序。

然后輸出學生信息,按照如下格式:

姓名 年齡 成績

樣例輸入:

3

abc 20 99

bcd 19 97

bed 20 97

樣例輸出:

bcd 19 97

bed 20 97

abc 20 99

代碼

 

 
  1. #include <stdio.h>  
  2. #include <stdlib.h>  
  3. #include <string.h>  
  4.  
  5. struct student{  
  6. char name[101];  
  7. int age;  
  8. int grade;  
  9. };  
  10.  
  11. int partition(struct student *A, int left, int right);  
  12. void quicksort(struct student *A, int begin, int end);  
  13.  
  14. int main()  
  15. {  
  16. struct student students[1001];  
  17. int i, n;  
  18.  
  19. while(scanf("%d",&n) != EOF)  
  20. {  
  21. //學生成績賦值  
  22. for(i = 0; i < n; i ++)  
  23. {  
  24. scanf("%s%d%d",students[i].name, &students[i].age, &students[i].grade);  
  25. }  
  26.  
  27. //快速排序  
  28. quicksort(students, 0, n-1);  
  29.  
  30. //打印輸出  
  31. for(i = 0; i < n; i ++)  
  32. {  
  33. printf("%s %d %d/n",students[i].name, students[i].age, students[i].grade);  
  34. }  
  35. }  
  36.  
  37. return 0;  
  38. }  
  39.  
  40. void quicksort(struct student *A, int begin, int end)  
  41. {  
  42. int pivot;  
  43.  
  44. if(begin < end)  
  45. {  
  46. pivot = partition(A, begin, end);  
  47. quicksort(A, begin, pivot - 1);  
  48. quicksort(A, pivot + 1, end);  
  49. }  
  50. }  
  51.  
  52. int partition(struct student *A, int left, int right)  
  53. {  
  54. struct student stand = A[left];  
  55.  
  56. while(left < right)  
  57. {  
  58. while(left < right && (A[right].grade > stand.grade || (A[right].grade == stand.grade && strcmp(A[right].name,stand.name) > 0) || (A[right].grade == stand.grade && strcmp(A[right].name,stand.name) == 0 && A[right].age > stand.age ) ) )  
  59. {  
  60. right --;  
  61. }  
  62. if(left < right)  
  63. {  
  64. A[left ++] = A[right];  
  65. }  
  66.  
  67. while(left < right && (A[left].grade < stand.grade || (A[left].grade == stand.grade && strcmp(A[left].name,stand.name) < 0) || (A[left].grade == stand.grade && strcmp(A[left].name,stand.name) == 0 && A[left].age < stand.age ) ) )  
  68. {  
  69. left ++;  
  70. }  
  71. if(left < right)  
  72. {  
  73. A[right --] = A[left];  
  74. }  
  75. }  
  76. A[left] = stand;  
  77. return left;  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品女视频| 国产在线久久久| 青青草精品毛片| 中文字幕视频在线免费欧美日韩综合在线看| 精品福利在线看| 亚洲精品美女免费| 日韩欧美精品免费在线| 国产色婷婷国产综合在线理论片a| 欧美精品久久久久久久久久| 亚洲va欧美va国产综合剧情| 久久久亚洲精品视频| 91精品国产沙发| 久久亚洲国产精品| 777国产偷窥盗摄精品视频| 国产亚洲精品高潮| 日韩欧美在线中文字幕| 91国自产精品中文字幕亚洲| 日本不卡免费高清视频| 日韩精品一区二区视频| 色悠悠国产精品| 欧美尺度大的性做爰视频| 九九九久久国产免费| 91精品国产综合久久久久久久久| 国产精品偷伦视频免费观看国产| 亚洲成人中文字幕| 精品亚洲一区二区三区在线观看| 久久天天躁狠狠躁夜夜躁2014| 日韩欧美aⅴ综合网站发布| 日韩精品福利在线| 韩国一区二区电影| 亚洲男人的天堂在线播放| 亚洲欧美另类国产| 亚洲国产福利在线| 日韩在线观看av| 日韩中文字幕在线视频播放| xvideos亚洲| 亚洲欧美www| 欧美激情在线视频二区| 精品香蕉在线观看视频一| 97色在线视频观看| 日韩精品在线观| 亚洲美腿欧美激情另类| 精品久久久久久中文字幕大豆网| 欧美裸体xxxxx| 欧美乱妇40p| 精品国产户外野外| 97在线视频免费| 亚洲精品一二区| 日本91av在线播放| 精品久久久久久国产91| 亚洲天堂男人天堂女人天堂| 神马久久桃色视频| 国产精品久久久久久久久久久久| 亚洲人av在线影院| 亚洲欧洲在线观看| 欧美色道久久88综合亚洲精品| 亚洲深夜福利在线| 欧美精品xxx| 九九久久久久久久久激情| 国产69精品久久久久9| 日韩亚洲在线观看| 久久韩国免费视频| 日韩在线观看高清| 综合欧美国产视频二区| 精品久久香蕉国产线看观看亚洲| 操91在线视频| 色无极亚洲影院| 亚洲网在线观看| 一个色综合导航| 欧美午夜视频一区二区| 亚洲精品成人久久久| 欧美日韩在线视频首页| 久久69精品久久久久久国产越南| 亚洲精品电影久久久| 日韩激情视频在线| 欧美精品日韩www.p站| 日韩精品中文字| 欧美色另类天堂2015| 亚洲欧美国产日韩天堂区| 国产有码在线一区二区视频| 国产午夜一区二区| 国产69精品99久久久久久宅男| 97在线视频免费观看| 少妇高潮久久77777| 日韩精品日韩在线观看| 欧美日韩国产精品| 亚洲精品一区二区网址| 奇米四色中文综合久久| 久久久中文字幕| 国产精品久久久久99| 91高清免费视频| 最近2019年手机中文字幕| 欧美日韩第一页| 一本色道久久综合狠狠躁篇的优点| 欧美性在线观看| 亚洲欧美国产高清va在线播| 色偷偷888欧美精品久久久| 7777免费精品视频| 91精品视频在线播放| 国产噜噜噜噜噜久久久久久久久| 欧美视频13p| 日韩免费在线观看视频| 久久久女人电视剧免费播放下载| 热久久免费国产视频| 亚洲成人久久久| 亚洲第一黄色网| 久久男人的天堂| y97精品国产97久久久久久| 欧美日韩免费网站| 亚洲精品一区二区三区不| 九色精品免费永久在线| 日韩av电影免费观看高清| 欧美激情第6页| 亚洲tv在线观看| 亚洲第一区在线| 8x拔播拔播x8国产精品| 日韩av理论片| 久久99久久亚洲国产| 欧美高清视频在线观看| 成人黄色免费网站在线观看| 欧美一级成年大片在线观看| 国产精品视频一| 亚洲欧美三级伦理| 亚洲色图35p| 日韩av在线网| 怡红院精品视频| 欧美又大又粗又长| 国产欧美 在线欧美| 91网站免费观看| 日韩中文第一页| 久久久久久久成人| 久久久久久亚洲精品不卡| 久久天天躁狠狠躁夜夜躁2014| 91午夜在线播放| 国产精品吹潮在线观看| 亚洲视频在线看| 欧美日韩性视频| 久久久久久综合网天天| 国产精品扒开腿做| 欧美午夜美女看片| 9.1国产丝袜在线观看| 91日本在线视频| 国产午夜精品一区二区三区| 亚洲成人中文字幕| 精品福利一区二区| 亚洲免费成人av电影| 欧美日韩精品国产| 国产精品99久久久久久久久久久久| 琪琪第一精品导航| 欧美黑人性猛交| 免费91在线视频| 中文日韩电影网站| 国产精品久久一区主播| 2020久久国产精品| 久久中文字幕一区| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩视频免费在线观看| 欧美日韩亚洲91| 亚洲精品久久久久中文字幕二区| 午夜免费在线观看精品视频| 成人激情视频在线| 久久电影一区二区| 国产精品一区二区在线| 国产精品视频白浆免费视频|