導航:首頁 > 萬維百科 > 網頁設計對數組排序

網頁設計對數組排序

發布時間:2021-01-24 12:22:58

1、設計子函數sort()實現整型數組a [N] 從小到大排序;在主函數中為一維數組輸入數據,然後調用

void sort(int array[],int n)
{
屬int i,j,flag,temp;
for(i = 0; i < n; i++)
{
flag = 1;
for(j = i+1; j < n; j++)
{
if(array[j] < array[j+1])
{
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
for(i = 0; i < n; i++)
printf("%d ", array[i]);

}
void main()
{
int a[100], pos;

for(pos = 0; pos < 10; pos ++)

scanf("%d", &a[pos]);

sort(a, 10);

}

2、JavaScript數字數組怎麼按數字大小排序?

先寫上我們的示例代碼,定義了一個數組arr,數組包括有幾個字母,不按順序的回,要對數組答進行排序,直接調用sort方法。再加上一些輸出語句,console.log是指在瀏覽器的調試控制台里輸出內容。

運行頁面,我們在控制台里看下結果,如圖,數組調用sort方法後,就按字母的升序做好排序了。

修改下代碼,把數組內容從字元串改成數字,然後再調用sort方法。

修改後,運行頁面,再看下結果。

數組排序都是按字元串來排序的,而不管數組內容是數字還是字元串。

修改下sort排序方法,把剛才定義的方法名傳進來。

運行頁面,可以看到現在的數組就是按數字從小到大排序的。

3、用對數組元素進行升序排序。給出完整的sort函數的定義。

void sort(int a[],int n)
 {
 int i, j, temp;
 for (j = 0; j < n - 1; j++)
 for (i = 0; i < n - 1 - j; i++)
   if(a[i] > a[i + 1])
     {temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;}
 }

4、設計一個函數(數組函數),將數組中的元素從小到大排序

#include<iostream>
using namespace std;
void sort(int a[], int n){
int i, j, k, t;
for(i=0; i<n-1; i++){
答k=i;
for(j=i+1; j<n; j++)
if(a[j]<a[k]) k=j;
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
void main(){
int a[]={ 3,5,2,8,7,1,9,4,6 };
sort(a,9);
for(int i=0; i<9; i++)
cout <<a[i] <<" ";
cout <<endl;
}

5、設計一個應用程序,輸入一個至少十個元素的數組,對數組進行升序排列

就是排序演算法,copy可以考慮的演算法包括: 直接插入排序、希爾排序、冒泡排序、快速排序、選擇排序、堆排序、歸並排序、桶排序等。 提供一個冒泡排序吧,其他的建議自己實現: typedef int DT;void swap(DT* a, DT* b){if(a!=b){*a=*a ^ *b;*b=*a ^ *

6、設計一個一維數組的排序函數p_sort,並調用它對10個整數進行排序。p_sort函數原型如下:

參考襲代碼如下:

#include<stdio.h>
#define N 10
void p_sort(int *p,int n)
{
int i,j,t;
if(p==NULL)
return;
for(i=0;i<n-1;++i)
for(j=0;j<n-i-1;++j)
if(p[j]>p[j+1]){
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
int main()
{
int i,a[N];
for(i=0;i<N;++i)
scanf("%d",&a[i]);
p_sort(a,N);
printf("排序後: ");
for(i=0;i<N;++i)
printf("%d ",a[i]);
return 0;
}

7、求高手教我怎麼對數組排序

可以自己寫一個函數用來給數組排序。或者用MATLAB自帶的
Matlab 用sort函數排序 二維數組2008-09-14 22:51在Matlab中排序某個向量(一維)時,可以使用sort(A),其中A為待排序的向量,如果僅是用來排序A,那麼直接使用sort(A)即可, 如果排序後還需要保留原來的索引可以用返回值,即[B,ind]=sort(A),計算後,B是A排序後的向量,A保持不變,ind是B中每一項對應於A 中項的索引。排序是安升序進行的。

在Matlab中,訪問矩陣中的元素,一維用A(1)訪問向量A的第一個元素;(下標從1開始);二維用A(1,2)訪問A中第一行,第二列的元素。

由於在sort函數的結果中,是安升序排序的,要轉換成降序,先用X=eye(n)生成一個n維的單位陣,然後用X=rot90(X)將其旋轉為次對角線的單位陣,再用原來矩陣乘以X即可,如要講A逆序排列採用如下步驟:

X=eye(size(A));
X=rot90(X);
A=A*X;

假如a是一個2*n的矩陣,即兩行.
b=a(1,:);
[c,pos]=sort(b);%pos為排序後的下標,c為第一行的排序結果;
a(2,:)=a(2,pos);%第二行按照第一行排序的下標對應
a(1,:)=c;%第一行結果重新賦給a 的第一行

以下適用於m*n的矩陣按第一行排序
[ b, pos ] = sort( a( 1, : ) );
a = a( :, pos );

8、設計一個一維數組的類模板,要求有對數組進行排序、查找和求元素總和的 成員函數

#include<iostream>
using namespace std;

//類模板
template<class T>
class vector
{
public:
void sort(T a[],int n);
T sum(T a[],int n);
int search(T e, T a[], int n);
};

//排序
template<class T>
void vector<T>::sort(T a[],int n)
{
T temp;
bool exchange;
for(int i = 1; i < n; i++)
{
exchange = false;
for(int j = n-1; j >= i; j--)
if(a[j] < a[j-1])
{
temp = a[j]; a[j] = a[j-1]; a[j-1] = temp;
exchange = true;
}
if(!exchange)
return;
}
}

//求和
template<class T>
T vector<T>::sum(T a[],int n)
{
T sum = a[0];
for(int i = 1; i < n; i++)
sum += a[i];
return sum;
}

//查找
template<class T>
int vector<T>::search(T e, T a[], int n)
{
for(int i = 0; i < n; i++)
if(a[i] == e)
return i;
return -1;
}

void main()
{
int data[5] = {5,4,3,2,1};
vector<int> obj;

cout<<"數組和為:"<<obj.sum(data,5)<<endl;
cout<<"數字4在數組中的位置是:"<<obj.search(4,data,5)<<endl;

cout<<"排序前數組各元素為:"<<endl;
for(int i = 0; i < 5; i++)
cout<<data[i]<<" ";
cout<<endl;

cout<<"排序後數組各元素為:"<<endl;
for(i = 0; i < 5; i++)
cout<<data[i]<<" ";
cout<<endl;
}

9、用「選擇排序法」對一維數組中的整數進行排序

選擇排序的思路,來 每次選最小自的數放前邊。。int n[100]; //100個數進行排序。int m;for(int i = 0; i < 99; i ++){m=i;for(int j = i+1 ; j < 100; j ++){//從j到99中選最小的元素放在第j位if(n[j]<n[m])m=j;}if(m!=i){//交換n[m],n[i]int s = n[i];n[i]=n[m];n[m]=s;}}

10、C語言,選擇法排序,對數組A進行升序排列,求答案,謝大神!

給你個我以前寫的降序的程序,你稍微改下就行了,我懶得改了,

#include <stdio.h>
#define N 10
main()
{
int i,j;/*i,j為循環變數*/
long a[N],temp,min; /*a[min]為比較時較小的數*/
printf("請依次輸入%d個數。\n",N);
/*進行循環輸入這十個數*/
for(i=0;i<N;i )
scanf("%ld",&a[i]);
printf("你輸入的%d個數是\n",N);
/*進行循環輸出這十個數*/
for(i=0;i<N;i )
printf("%ld ",a[i]);
printf("\n");
/*利用選擇法,即從後9個比較過程中,選擇一個最小的與第一個

元素交換,下次類推,即用第二個元素與後8個進行比較,並進行交換。*/
for(i=0;i<N-1;i )
{
min=i;
for(j=i 1;j<N;j )
if(a[j]>a[min])
{
temp=a[j];
a[j]=a[min];
a[min]=temp;
}
}
printf("這%d個數從大到小排列為\n",N);
/*列印出這十個經排列後的數*/
for(i=0;i<N;i )
printf("%d ",a[i]);
printf("\n");
}

與網頁設計對數組排序相關的知識