① 寫一個linux腳本利用冒泡排序法將輸入的數字從大到小排序
直接上代碼
#!/bin/bash
echo -n "請輸入嫌判如數字(多個數字芹啟間用沖游空格隔開): "
read s
a=($s)
l=$((${#a[@]}-1))
for i in `seq 1 $l`; do
f=true
for j in `seq $l -1 $i`; do
if [ ${a[$j]} -gt ${a[$((j-1))]} ]; then
m=${a[$j]}
a[$j]=${a[$((j-1))]}
a[$((j-1))]=$m
f=false
fi
done
if $f; then
break
fi
done
echo ${a[@]}
② 編寫一個程序,要求從鍵盤輸入10個整數,然後採用冒泡排序法,按降序排序。 (用冒泡排序法啊)
採用冒泡法降序排列10個輸入數據的程序如下:
(2)冒泡法排序10個數linux腳本擴展閱讀:
冒泡排序演算法的原理如下:
1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
2、對每一對相鄰元素做同樣的工作,從開始第一對到結尾的洞殲最後一對。在這一點,最後的元素應該會是最大的數。
3、針對所有的元素重復以上的步驟,除了最後一個。
4、持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
③ C語言:採用冒泡排序方法,對10個數按由小到大的的順序排序
代碼如下(對10個整數進行升序排序):
#include<stdio.h>
int main()
{
int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};
//排序
for(i=1;i<10;i++)//外循環控制排序趟數,n個數排n-1趟
{
for(j=0;j<10-1;j++)//內循環每趟比較的次數,第j趟比較n-i次
{
if(a[j]>a[j+1])//相鄰元素比較,逆序則交換
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序後的結果是: ");
for(i=0;i<10;i++)
{
printf("%d",a<i>);
}
printf(" ");
return 0;
}
冒泡法:
演算法分析:如果有n個數,則要進行n-1趟比較。在第1趟比較中要進埋讓賀行n-1次相鄰元素的兩兩比較,在第j趟比較中要進行n-j次兩兩比較。比較的順序從前往後,經過一趟比較後,將最值沉底(換到最後一個元素位置),最大值沉底為升序,最小值沉底為降序。
(3)冒泡法排序10個數linux腳本擴展閱讀:
include用法:
#include命令預處理命令的一種,預處理命令可以將別的源代碼內容插入到所指定的位置;可以標識出只有在特定條件下才會被編譯的某一段程序代碼;可以定義類似標識符功能的宏,在編譯時,預處理器會用別的文本取代該宏。
插入頭文件的內容
#include命令告訴預處理器將指定頭文件的內容插入到預處理器命令的相應位置。有兩種方式可以指定插入頭文件:
1、#include<文件名>
2、#include"文件名"
如果需要包含標准庫頭文件或者實現版本所提供的頭文件,應該使用第一種格式。如下例所示:
#include<math.h>//一些數學函數的原型,以及相關的類型和宏
如果需要包含針對程序所開發的源滑宴文件,則應該使用第二種格式。
採用#include命令所插入的文件,通常文件擴展名是.h,文件包括函數原型、宏定義和類型定義。只要使用#include命令,這些定義就可被任何源文件使用。如下例所示:
#include"myproject.h"//用在當前項目中的函數原型、類型定義和宏
你可以在#include命令中使用宏。如果使用宏,該宏的取代結果必須確保生成正確的#include命令。例1展示了這樣的#include命令。
【例1】在#include命令彎派中的宏
#ifdef _DEBUG_
#define MY_HEADER"myProject_dbg.h"
#else
#define MY_HEADER"myProject.h"
#endif
#include MY_HEADER
當上述程序代碼進入預處理時,如果_DEBUG_宏已被定義,那麼預處理器會插入myProject_dbg.h的內容;如果還沒定義,則插入myProject.h的內容。
④ 用冒泡排序法對輸入的10個數進行升序排序 並存入數組中
C語言程序如下;
#include<stdio.h>
#defineARR_LEN255/*數組長度上限*/
#defineelemTypeint/*元素類型*//*冒泡排序*/
/*1.從當前元素起,向後依次搜亮比較每一對相鄰元素,若逆序則交換*/
/*2.對所有元素均重復以上步驟,直至最後一個元素*/
/*elemTypearr[]:排序目標數組;intlen:元素個數*/
voidbubbleSort(elemTypearr[],intlen){
elemTypetemp;
inti,j;
for(i=0;i<len-1;i++)/*外循環為排序趟數,len個數進行len-1趟*/
for(j=0;j<len-1-i;j++){/*內循環為每趟比較的次數,第i趟比較len-i次*/
if(arr[j]>arr[j+1]){/*相鄰元素比較,若逆序則交換(升序為左大於右,降序反之)*/
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}int或漏高main(void){
elemTypearr[ARR_LEN]={3,5,1,-7,4,9,-6,8,10,4};
intlen=10;
inti;
bubbleSort(arr,len);
for(i=0;i<len;i++)
printf("%d ",arr[i]);
putchar(' ');
return0;
}
冒泡排序的最壞時間復雜度為O(n^2)。
綜上,因此冒泡排序總的平均時間復雜度為O(n^2)。
⑤ 用冒泡排序法對輸入的10個數進行升序排序 並存入數組中
1、打開sublime text 3,點擊左上方的「文件」,迅褲選擇「新建文件」,新建一個後綴名為.html的文畝銷簡件,並命名標題。
⑥ C語言從鍵盤輸入10個數,使用冒泡法對這10個數進行排序。要求使用指針實現。
#include<stdio.h>
voidBubbleSort(inta[],intn)
{
int i,j,temp,flag=1;
for(i=0;i<n-1&&flag;i++)//比較的趟數
{
flag=0;//未進行比較,將flag置0
for(j=0;j<n-1-i;j++)//每趟比較的次數
if(a[j]>a[j+1])//由小到大排序
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;//若進行了比較,則將flag置1
}
}
}
void main()
{
int a[10],i;
printf("pleaseinput10numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("Thearrayis:\n");
for(i=0;i<10;i++)
printf("%-4d",a[i]);
BubbleSort(a,10);
printf("\nAftersortthearrayis:\n");
for(i=0;i<10;i++)
printf("%-4d",a[i]);
printf("\n");
}
運行效果:
(6)冒泡法排序10個數linux腳本擴展閱讀:
main()函數用法:
1、大多數UNIX系統對main函數提供了三個參數,原型如下:
intmain(intargc,char*argv[],char*env[]);其中第三個參數是環境表地址。ANSIC規定main函數只有兩個參數,而且第三個參數與全局變數environ相比也沒有帶來更多益處,所以POSIX.1也規定應使用environ而不使用第三個參數。
2、通常用getenv和putenv函數來存取特定的環境變數,而不是用environ變數。
main函數的原型多是下面這種形式:
intmain(intargc,char*argv[]),參數argc代表了輸入參數的個數,char*argv[]表示傳入的參數的字元串,是一個字元串數組。
例如在linux平台下編寫一個小程序:
int main(intargc,char*argv[])
{
int i;
printf("argc:%d\n",argc);
for(i=0;i<argc;i++)
{
printf("argv[%d]:%s\n",i,argv[i]);
}
exit(0);
}
3、用gcc編譯後形成一個a.out的可執行的文件,運行a.out,其結果是:
argc=1,argv[0]=」a.out」
運行的程序的文件名,也佔用一個參數位置,也就是說argv數組中的第一個單元指向的字元串總是可執行程序的名字,以後的單元指向的字元串依次是程序調用時的參數。這個賦值過程是操作系統完成的,只需要拿來用就可以了。
4、在命令行參數的提交中,系統會自動給指針數組後加上一個NULL,所以for(i=0;i<argc;i++)這句也可以換成while(*argv!=NULL)int main(intargc)省略其它參數的定義也是可以的,這樣運行時候argc就直接返回參數個數,而不返回其它。運行命令行參數帶有char*argv[]的時候,如果輸入參數帶有空格,應該用雙引號括起來。
⑦ 冒泡法10個整數從小到大如何排序
冒泡法10個整數從小到大排序思路如下:
依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。重復第一趟步驟,直至全部排序完成。
第一趟比較完成後,最後一個數一定是數組中最大的一個數,所以第二趟比較的時候最後一個數不參與比較;第二趟比較完成後,倒數第二個數也一定是數組中第二大的數,所以第三趟比較的時候最後兩個數不參與比較;依次類推,每一趟比較次數-1。
冒泡排序演算法的運作如下:
1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
3、針對所有的元素重復以上的步驟,除了最後一個。
4、持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。