{冒泡最終思想是for嵌套循環:
定義數組——隨機數a[i]
= arc4random_uniform(隨機N);並打印——for外不循環控制趟數=元素個數-1
——for中(i+j) = 定值(元素總個數)內部控制循環次數j<</b>(元素個數
- 1 - i)——//遍歷數組查並打印
// 總結;**********************************************************************************************
1、開始是元素個數-1趟進行完畢 、
//第一趟
// for (int i = 0; i < 4 - 1; i ++) {
// if (arr[i] > arr[i + 1]) {
// int temp = arr[i];
// arr[i] = arr[i +1];
// arr[i + 1] = temp;
//
//
// }
// if (arr[i] > arr[i + 1]) {
// int temp = arr[i];
// arr[i] = arr[i +1];
// arr[i + 1] = temp;
//
//
// }
// }
2、每走完一趟要進行遍歷數組
//遍歷數組
// for (int i = 0; i < 4; i ++) {
// printf("%d\t",arr[i]);
// printf("%d\t",arr[i]);
// }
3、循環完內部進行外部循環來控制趟數:趟數 = 元素個數減1,並且新定義的 j + i= 元素總個數是定值;所以
j < 元素個數-1 - i;
// //外部循環用來控制趟數,比較的趟數等於元素個數-1
// // j + i = 4;
// for (int i = 0; i < 4 - 1; i ++) {
// for (int j = 0; j < 4 - i - 1; j ++) {
// if (arr[j] > arr[j + 1]) {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j +1 ] = temp;
// }
// }
// // j + i = 4;
// for (int i = 0; i < 4 - 1; i ++) {
// for (int j = 0; j < 4 - i - 1; j ++) {
// if (arr[j] > arr[j + 1]) {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j +1 ] = temp;
// }
// }
// }
4、最後再遍歷數組查驗:
// //遍歷數組
// for (int i = 0; i < 4; i ++) {
// printf("%d\t",arr[i]);
// for (int i = 0; i < 4; i ++) {
// printf("%d\t",arr[i]);
// }
************************************************************************************************************************************
//#import
//
// int main( ) //主函數入口
// { //表示主函數開始
// int i,j; //定義整形變量i和j
// int grade[5],temp; //定義N維(N=5,也就是五維啦^^)整形數組和整形變量temp
// printf("輸入5個數\n"); //在屏幕上顯式“輸入5個數”並且換行
// for(i=0;i<5;i++) //開始for循環,從i=0,每次加1,直到i=4,共需循環5次
// { //循環體開始
// scanf("%d",&grade[i]); //依次獲取用戶輸入的整數值並存入數組grade中
// } //循環結束
// for(i=0;i<5;i++) //開始外層for循環,從i=0,每次加1,直到i=4
// { //外層循環體開始
// for(j=0;j<5-1-i;j++) //開始外層for循環,從j=0,每次加1直到i等於外層循環的N-j-1
// { //內層循環體開始
// if(grade[j]
// { //如果整形數組前面的數比其後的小,執行以下語句
// temp=grade[j+1]; //將比較大的數賦值給temp
// grade[j+1]=grade[j]; //將比較小的數賦值給數組中後面的變量
// grade[j]=temp; //將比較大的數賦值給數組中前面的變量
// } //從此便完成大小變量的交換,使得大值往前放
// } //結束內層循環
// } //結外內層循環,完成排序
// printf("最後排序爲:\n");//在屏幕顯式“最後排序爲:”並換行
// for(i=0;i<5;i++) //同開始的for循環類似
// { //開始循環輸出
// printf("%d",grade[i]); //只是這裏要逐個輸出數組中的五個數值
// } //結束循環輸出
// printf("\n"); //輸出換行到屏幕,看不到什麼效果,可刪掉
// //結束main()函數
//
// int main( ) //主函數入口
// { //表示主函數開始
// int i,j; //定義整形變量i和j
// int grade[5],temp; //定義N維(N=5,也就是五維啦^^)整形數組和整形變量temp
// printf("輸入5個數\n"); //在屏幕上顯式“輸入5個數”並且換行
// for(i=0;i<5;i++) //開始for循環,從i=0,每次加1,直到i=4,共需循環5次
// { //循環體開始
// scanf("%d",&grade[i]); //依次獲取用戶輸入的整數值並存入數組grade中
// } //循環結束
// for(i=0;i<5;i++) //開始外層for循環,從i=0,每次加1,直到i=4
// { //外層循環體開始
// for(j=0;j<5-1-i;j++) //開始外層for循環,從j=0,每次加1直到i等於外層循環的N-j-1
// { //內層循環體開始
// if(grade[j]
// { //如果整形數組前面的數比其後的小,執行以下語句
// temp=grade[j+1]; //將比較大的數賦值給temp
// grade[j+1]=grade[j]; //將比較小的數賦值給數組中後面的變量
// grade[j]=temp; //將比較大的數賦值給數組中前面的變量
// } //從此便完成大小變量的交換,使得大值往前放
// } //結束內層循環
// } //結外內層循環,完成排序
// printf("最後排序爲:\n");//在屏幕顯式“最後排序爲:”並換行
// for(i=0;i<5;i++) //同開始的for循環類似
// { //開始循環輸出
// printf("%d",grade[i]); //只是這裏要逐個輸出數組中的五個數值
// } //結束循環輸出
// printf("\n"); //輸出換行到屏幕,看不到什麼效果,可刪掉
// //結束main()函數
// ******************************經典例題*************************************
編寫一個程序,輸入兩個包含5個元素的數組,先將兩個數組升序排序,然 後將這兩個數組合併成一個升序數組。
//先定義兩個數組
// int a[5] = {0};
// int b[5] = {0};
// int c [10] = {0};
// printf("\n排序前:\n");
// //打出兩個隨機數組
// for (int i = 0; i < 5; i ++) {
// a[i] = arc4random_uniform(100);
// b[i] = arc4random_uniform(100);
// printf("a[%d] = -\t,b[%d] = -\n",i,a[i],i,b[i]);
//
// }
// //外部循環控制趟數
// for (int i = 0; i < 5 - 1; i ++) {
// //內部控制循環次數
// for (int j = 0; j < 5 - 1 - i; j ++) {
// if (a[j] > a[j + 1]) {
// int x = a[j];
// a[j] = a[j + 1];
// a[j + 1] = x;
// }
// if (b[j] > b[j +1]) {
// int y = b[j];
// b[j] = b[j +1];
// b[j + 1] = y;
// }
// }
// }
// printf("\n排序後:\n");
// //遍歷數組查看
// for (int i = 0; i < 5; i ++) {
// printf("a[%d] = -\t b[%d] = -\n",i,a[i],i,b[i]);
// }
// //將兩個數組放到一個數組c中
// for (int i = 0; i < 10; i ++) {
// if (i < 5) {
// c[i] = a[i];
// } else {
// c[i] = b[i - 5];
// }
// }
////對數組c進行升序排序
// for (int i = 0; i < 10- 1; i ++) {
// if (c[i] > c[i +1]) {
// int temp = c[i];
// c[i] = c[i + 1];
// c[i +1] = temp;
// }
// }
// //遍歷循環查驗
// printf("\n重組排序後:\n");
// for (int i = 0; i < 10; i ++) {
// printf("a[%d] = -\n",i,c[i]);
// int a[5] = {0};
// int b[5] = {0};
// int c [10] = {0};
// printf("\n排序前:\n");
// //打出兩個隨機數組
// for (int i = 0; i < 5; i ++) {
// a[i] = arc4random_uniform(100);
// b[i] = arc4random_uniform(100);
// printf("a[%d] = -\t,b[%d] = -\n",i,a[i],i,b[i]);
//
// }
// //外部循環控制趟數
// for (int i = 0; i < 5 - 1; i ++) {
// //內部控制循環次數
// for (int j = 0; j < 5 - 1 - i; j ++) {
// if (a[j] > a[j + 1]) {
// int x = a[j];
// a[j] = a[j + 1];
// a[j + 1] = x;
// }
// if (b[j] > b[j +1]) {
// int y = b[j];
// b[j] = b[j +1];
// b[j + 1] = y;
// }
// }
// }
// printf("\n排序後:\n");
// //遍歷數組查看
// for (int i = 0; i < 5; i ++) {
// printf("a[%d] = -\t b[%d] = -\n",i,a[i],i,b[i]);
// }
// //將兩個數組放到一個數組c中
// for (int i = 0; i < 10; i ++) {
// if (i < 5) {
// c[i] = a[i];
// } else {
// c[i] = b[i - 5];
// }
// }
////對數組c進行升序排序
// for (int i = 0; i < 10- 1; i ++) {
// if (c[i] > c[i +1]) {
// int temp = c[i];
// c[i] = c[i + 1];
// c[i +1] = temp;
// }
// }
// //遍歷循環查驗
// printf("\n重組排序後:\n");
// for (int i = 0; i < 10; i ++) {
// printf("a[%d] = -\n",i,c[i]);
// }