A. 怎麼在慧編程圖形化編程的列表中進行排序
演算法比較少。
從左邊找到第一個最大的,從右邊找到一個最小的,然後交換,直到左邊下標大於右邊下標,然後交換left和右邊下標對應的數據再進行遞歸運算。
縮小排序范圍,即去掉最後方位置正確的元素,對前方數組進行新一輪遍歷,重復第1步驟。直到范圍不能縮小為止,排序完成。
B. excel 中想讓序號按選定內容自動排序怎麼編程
排序-自定義排序功能
1、選擇區域
2、排序-自定義序列
3、輸入自定義的序列
4、添加,完成!
C. 請問如何在Excel中,將一列數據自動隨機排列,並把結果自動生成為新的一列
寫個VBA版本,代碼如下:
SubA列隨機排序()
DimrcA,i,w,k,cAsLong
DimsAsString
rcA=Range("A"&Rows.Count).End(xlUp).Row
Fori=1TorcA
s=Range("A"&i)
'Debug.Prints
Do
Randomize
w=Int((rcA*Rnd+1))
IfRange("B"&w)=""Andw<>cThen
Range("B"&w)=s
c=w
ExitDo
EndIf
Loop
Next
EndSub
D. 數據結構編程課題:線性表的排序
#include
<stdlib.h>
#include
<stdio.h>
#include
<sys/time.h>
#include
<sys/types.h>
#include
<unistd.h>
#define
TIMEDIFF(s,
e)
((e.tv_sec-s.tv_sec)*1000000
+
e.tv_usec
-
s.tv_usec)
int
gen_numbers(int
arr[],
int
len)
{
for
(int
i
=
0;
i
<
len;
++i)
{
arr[i]
=
rand();
}
return
0;
}
int
buble_sort(int
arr[],
int
len)
{
bool
change=true;
for(int
i=0;
i
<
len
-
1
&&
change;
i++)
{
change=false;
for(int
j
=
0;
j
<
len
-
i
-
1;
j++)
if(arr[j]
>
arr[j+1])
{
int
temp
=
arr[j];
arr[j]
=
arr[j+1];
arr[j+1]
=
temp;
change
=
true;
}
}
}
int
temp[20];
void
Merge(int
number[],
int
start,
int
middle,
int
last)
{
//
int
*temp
=
(int*)malloc((last
-
start)
*
sizeof(int));
int
start2
=
middle
+
1,
k
=
0;
while
((start
<=
middle)
&&
(start2
<=
last))
{
if
(number[start]
<
number[start2])
{
temp[k]
=
number[start];
start++;
}
else
{
temp[k]
=
number[start2];
start2++;
}
k++;
}
while
(start
<
middle)
temp[k++]
=
number[start++];
while
(start2
<
last)
temp[k++]
=
number[start2++];
for
(int
i
=
0;
i
<
(last
-
start);
i++)
number[start
+
i]
=
temp[i];
//
free(temp);
}
void
MergeSort(int
number[],
int
first,
int
last)
{
int
middle;
if
(first
<
last)
{
middle
=
(first
+
last)
/
2;
MergeSort(number,
first,
middle);
MergeSort(number,
middle
+
1,
last);
Merge(number,
first,
middle,
last);
}
}
int
main()
{
int
array[20];
struct
timeval
tv,
tv1;
gettimeofday(&tv,
0);
for
(int
i
=
0;
i
<
10000;
++i)
{
gen_numbers(array,
20);
buble_sort(array,
20);
}
gettimeofday(&tv1,
0);
printf("time
diff:[%ld]\n",
TIMEDIFF(tv,
tv1)
/
1000);
gettimeofday(&tv,
0);
for
(int
i
=
0;
i
<
10000;
++i)
{
gen_numbers(array,
20);
MergeSort(array,
0,
20);
}
gettimeofday(&tv1,
0);
printf("time
diff:[%ld]\n",
TIMEDIFF(tv,
tv1)
/
1000);
return
0;
}
E. 如何對python編程中的列表元素按成績高低進行排序呢
最簡單的辦法就是需要指定列表排序方法中的參數「key」。代碼如下:
第一種:
stu=[['john',79],['mame',96],['herry',85],['lili',95],['ziling',63]]
def takeSecond(elem):
return elem[1]
stu.sort(key=takeSecond,,reverse=True)
print(stu)
第二種:
stu=[['john',79],['mame',96],['herry',85],['lili',95],['ziling',63]]
s=sorted(stu,key=lambda student: student[1],,reverse=True)
print(s)
F. 如何:以編程方式對工作表中的數據進行排序
調用 NamedRange 控制項的 Sort 方法。以下示例需要工作表上一個名為 Fruits 的 NamedRange 控制項。必須將此代碼置於表類中,而不是在 ThisWorkbook 類中。
C#
VB
this.Fruits.Sort(
this.Fruits.Columns[1, missing], Excel.XlSortOrder.xlAscending,
this.Fruits.Columns[2, missing], missing, Excel.XlSortOrder.xlAscending,
missing, Excel.XlSortOrder.xlAscending,
Excel.XlYesNoGuess.xlNo, missing, missing,
Excel.XlSortOrientation.xlSortColumns,
Excel.XlSortMethod.xlPinYin,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal);
將以下代碼置於 Sheet1.vb 或 Sheet1.cs 中,以對 ListObject 控制項中的數據進行排序。該代碼假定你在名為 Sheet1 的工作表中,具有名為 fruitList 的 Microsoft.Office.Tools.Excel.ListObject控制項。
對 ListObject 控制項中的數據進行排序
調用 ListObject 主機控制項的 Range 屬性的 Sort 方法。
C#
VB
this.fruitList.Range.Sort(
this.fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending,
this.fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending,
missing, Excel.XlSortOrder.xlAscending,
Excel.XlYesNoGuess.xlYes, missing, missing,
Excel.XlSortOrientation.xlSortColumns,
Excel.XlSortMethod.xlPinYin,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal);
對 VSTO 外接程序中的數據進行排序
若要對本機范圍內的數據進行排序
調用本機 Excel Microsoft.Office.Interop.Excel.Range 控制項的 Sort 方法。以下示例需要工作表上一個名為 Fruits 的本機 Excel 控制項。
C#
VB
Excel.Range Fruits = Application.get_Range("A1", "B3");
Fruits.Sort(
Fruits.Columns[1], Excel.XlSortOrder.xlAscending,
Fruits.Columns[2], missing, Excel.XlSortOrder.xlAscending,
missing, Excel.XlSortOrder.xlAscending,
Excel.XlYesNoGuess.xlNo, missing, missing,
Excel.XlSortOrientation.xlSortColumns,
Excel.XlSortMethod.xlPinYin,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal);
對 ListObject 控制項中的數據進行排序
調用本機 Excel Microsoft.Office.Interop.Excel.ListObject 控制項的 Range屬性的 Sort 方法。以下示例假定你在活動工作表中有名為 fruitList 的本機 Excel Microsoft.Office.Interop.Excel.ListObject 控制項。
C#
VB
Excel.ListObject fruitList =
((Excel.Worksheet)Application.ActiveSheet).
ListObjects.Add(Microsoft.Office.Interop.Excel.XlListObjectSourceType.xlSrcRange,
Application.get_Range("A1", "B3"),
missing, Microsoft.Office.Interop.Excel.XlYesNoGuess.xlNo);
fruitList.Range.Sort(
fruitList.ListColumns[1].Range, Excel.XlSortOrder.xlAscending,
fruitList.ListColumns[2].Range, missing, Excel.XlSortOrder.xlAscending,
missing, Excel.XlSortOrder.xlAscending,
Excel.XlYesNoGuess.xlYes, missing, missing,
Excel.XlSortOrientation.xlSortColumns,
Excel.XlSortMethod.xlPinYin,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal,
Excel.XlSortDataOption.xlSortNormal);
G. 編程:利用excel中排序可找出同性質的數據行,建立這些行內容的新資料庫
可以實現,用VBA來寫個宏,來判斷注冊科目是不是音樂,要是是就復制這一行到新的表中,一直到表的最後,再建一個新表,放個按鈕,要哪個科目輸入進去,一按按鈕就自動運行這個宏生成新的表。但這要一點點編程技術,不難。哈哈。
嫌費事,就直接篩選,復制,粘貼,比寫程序簡單。
H. 在excel中,不使用函數編程,如何進行排序並列印如下表格。
選中某一崗位的表,點「數據」----排序----主要關鍵字選擇成績列----選升序或降序---選有標題行---確定。這個崗位的成績順序就排好了。要注意:姓名對應的成績,如果有誤,立即撤銷操作。有可能操作錯誤,就只排成績,姓名沒有動。
I. 用C語言編程,輸出1,2,3,4在兩行兩列表格的各種排列,請利用二重循環尋找填法
這個問題和兩行兩列沒多大關系,主要就是求P4的全排列(共24種)。
然後在輸出的時候考慮一下格式就可以了。
下面講一下具體方法(回溯法)。
用data[4]來表示表格數據,used[5]記錄某個數據是否已經被填過了。
兩重循環:外層循環(i)從0到3不斷地來來回回指定被填數data[i];內層循環試著從小到大不斷的嘗試填寫data[i]。
下面是源代碼,有注釋的,就耐著性子慢慢看慢慢研究吧。
#include <stdio.h>
int main(void){
int i;
int data[4],used[5]={0},cas=1;
//循環的初始化
i=0;
data[0]=0;
while(1){
//data[i]從1到4枚舉每一種情況。
do{
data[i]++;
}while(data[i]<=4 && used[data[i]]);
if(data[i]<=4){//data[i]填好了
if(i==3){
//所有數據都填寫好了,輸出
printf("CASE: %d\n",cas++);
printf("%d %d\n%d %d\n",data[0],data[1],data[2],data[3]);
used[data[--i]]=0;//清理used[],並把i減1
}
else{
//並非所有數據都填寫好
used[data[i]]=1;//data[i]這個數據已經用過,記錄一下。
data[++i]=0;//准備開始試填下一個了。
}
}
else{//data[i..3]枚舉完了,考慮i-1的情況。
if(i==0) break;
used[data[--i]]=0;//清理used[],並把i減1
}
}
return 0;
}
J. VB編程在列表框中如何排序
是你指定的。
如果是在編程時加入的列表內容,就是你輸入的順序;如果是在運行時通過語句加入的,根據你指定的位置而定;如果是使用資料庫里查詢的數據,按你的查詢語句定順序。