1. 程式人生 > >對一個二維陣列中的資料排序

對一個二維陣列中的資料排序

#include <stdio.h>

#define N 4

int FindMinLine(int Arr[][N], int CurrenLine)   //找到陣列中從當前行開始的最小值所在行
{
int i = 0, j = 0;
int min_index = 0;
int min = 0;       //假設的最小元素
min_index = CurrenLine;
min = Arr[CurrenLine][0];

for (i = CurrenLine; i < N; i++)
{
for (j = 0; j < N; j++)
{
if (min > Arr[i][j])
{
min = Arr[i][j];
min_index = i;
}
}
}
return min_index;
}

void Swap(int Arr[][N], int CurrenLine, int MinLine) //交換當前行和最小值所在行
{
int i = 0;
int temp = 0;

for (i = 0; i < N; i++)
{
temp = Arr[CurrenLine][i];
Arr[CurrenLine][i] = Arr[MinLine][i];
Arr[MinLine][i] = temp;
}
}

void Sort(int Arr[][N]) //對二維陣列進行排序
{
int i = 0;
int MinLine = 0; //最小行

for (i = 0; i < N - 1; i++) //最後一次一定是排序好的,所以是N-1
{
MinLine = FindMinLine(Arr, i); //先找到最小值所在行
Swap(Arr, i, MinLine); //交換當前行和最小值所在行
}
}

void PrintArr(int Arr[][N]) //列印二維陣列 
{
int i = 0;
int j = 0;

for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
printf ("%d ", Arr[i][j]);
}
printf ("\n");
}
}

int main()
{
int Arr[N][N] = {51,40,43,51,  6,5,48,9,  74,31,35,4,  86,15,64,165};

Sort(Arr);
PrintArr(Arr);

return 0;
}

相關推薦

一個陣列資料排序

#include <stdio.h> #define N 4 int FindMinLine(int Arr[][N], int CurrenLine)   //找到陣列中從當前行開始的最小值所在行 {int i = 0, j = 0;int min_index = 0;int min = 0;

劍指off:在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣一個二維陣列一個整數,判斷陣列中是否含有該整數

題目描述 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路: 從左下角x開始尋找,x為此列最大數字,此行最小數字。如果目

java 劍指offer 第一題:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列一個整數,判斷陣列中是否含有該整數。

我用了三種解法,全部都可以在牛客網上通過。 第一種解法是最簡單的,遍歷整個二維陣列找那個整數; 第二種和第三種都是根據二維陣列有序的特性進行查詢,第二種方法是從左下角開始查詢,大於左下角刪除一行,小於左下角刪除一列;第三種是從右上角開始查詢,大於右上角刪除一行,小於右上角的

題目:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列一個整數,判斷陣列中是否含有該整數。(Python實現)

''' 題目: 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。 請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 ''' '''

·在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列一個整數,判斷陣列中是否含有該整數。

題目 在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 分析 例如這樣一個數列:   要在裡面查詢是否存在7。按照平常的思維

Python實遍歷二維陣列題目一:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列一個整數,判斷陣列中是否含有該整數。

在準備國網的過程中,仍要刷題,程式設計題。痛並快樂著。喜歡Python語言,所以用Python進行敲磚頭。劍指offer題目一:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列

Java 一個陣列,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。判斷陣列是否含有某個整數。

開始刷牛客題目:思路:題目已知:二維陣列由上到下,由左到右遞增的規律,那麼選取右上角(或者左下角)的元素a[row][col]與target進行比較,當target小於元素a[row][col]時,那麼target必定在元素a所在行的左邊,即col--;當target大於元素

牛客網劍指offer—題目一在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列一個整數,判斷陣列中是否含有該整數

在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 思路:因為是隻需判斷有無該整數,所以用bool函式,返回false或true      假設是這樣一個數組

一個陣列(每個一陣列的長度相同),每一行都按照從左到右遞增的順序排序

在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式

C++找出一個陣列的鞍點,即該位置上的元素在該行上最大,在該列上最小(也可能沒有鞍點)

今日正式用csdn部落格記錄,回顧我所學到的知識,分享一些我的人生感悟和自身經歷。也希望未來通夠過此平臺和更多喜愛程式設計的人交流學習。 道聽途說再加上自己的感悟,認為程式設計最重要的是思想,而不是語言本身,語言只是個工具。所以我們得先學思想。遇到問題,應該先想如果是自己去做會怎麼處理,但我們不

返回一個陣列最大子陣列的和

題目:返回一個二維整數陣列中最大子陣列的和。要求:輸入一個二維整形陣列,數組裡有正數也有負數。二維陣列中連續的一個子矩陣組成一個子陣列,每個子陣列都有一個和。求所有子陣列的和的最大值。 思路:先求每一行一維陣列所有子陣列的和的最大值,再與下面的其他行的最大值進行比較,看是否能重新生成一個新的陣列,如果能,返

c語言 將一個陣列行和列的元素互換,存到另一個陣列

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

判斷一個陣列資料是否在另外一個數組裡重複

當我最先碰到這個問題是工作中批量匯入資料,防止裡面有資料跟資料庫裡原有的重複。 大多數人想到的是挨個迴圈對比,感覺這樣速度有點慢,所以根據php函式來解決的 $new_cand_idcard = array_column( $cands, 'cand_idcard'

mysql如何將查詢結果的多個記錄的指定欄位放到一個陣列,以及在in子句使用陣列

 $sql0="select  * from portals_channel where ch_use=1 and tid=5 and (chid<>31 and chid<>39  and chid<>44 )";  $query0=e